2014-12-10 2 views
1

Я выполнил свой файл py с помощью py2exe. Мой setup.py выглядит следующим образом:AttributeError в Py2exe

from distutils.core import setup 
import py2exe 

setup(windows=['main.py']) 

Когда я попытался запустить main.exe, я получаю сообщение об ошибке и был передан main.log, который гласит:

Traceback (most recent call last): 
    File "main.py", line 20, in <module> 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible 
    File "C:\Python34\lib\site-packages\pandas\__init__.py", line 7, in <module> 
    from . import hashtable, tslib, lib 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible 
    File "<loader>", line 10, in <module> 
    File "<loader>", line 6, in __load 
    File "pandas\tslib.pyx", line 2839, in init pandas.tslib (pandas\tslib.c:79846) 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible 
    File "<loader>", line 10, in <module> 
    File "<loader>", line 6, in __load 
    File "pandas\algos.pyx", line 64, in init pandas.algos (pandas\algos.c:179610) 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible 
    File "<loader>", line 10, in <module> 
    File "<loader>", line 6, in __load 
    File "pandas\lib.pyx", line 1, in init pandas.lib (pandas\lib.c:77889) 
AttributeError: 'module' object has no attribute '__pyx_capi__' 

Похоже линии 20 в моем main.py файл (import pandas as pd) вызвала проблему. Этот тип ошибки упоминается в запросе на вытягивание here, и они предложили добавить пустой файл __init__.py. Я сделал это и получил тот же результат. Я нашел хорошо прокомментированный пост here (не имеющий прямого отношения к py2exe), который предполагает, что это может быть связано с взаимным импортом верхнего уровня или круговыми зависимостями. Эта проблема кажется хорошо известной и упоминалась как минимум дважды в Stackoverflow в прошлом году (например, here и here), но четкое решение не было дано.

Возможно, мы сможем получить больше ясности с вашей обратной связью.

Python 3.4.2; py2exe 0.9.2.0

ответ

0

Выполнял ту же проблему с pandas, но я получил ее после обновления до последней версии.

Кажется, эта ошибка была недавно обратился, и был решен в панд 15,2 https://github.com/pydata/pandas/issues/8602