我使用py
制作了我的py2exe
文件可执行文件。我的setup.py
如下:
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__'
看起来我的main.py
文件(import pandas as pd
)中的第20行触发了问题。在拉请求here中引用了这种类型的错误,他们建议添加一个空白的__init__.py
文件。我这样做了,得到了同样的结果。我发现了一篇评论很好的帖子here(不直接处理py2exe),这表明这可能是由于相互顶级导入或循环依赖。这个问题似乎众所周知,并且在过去的一年中已经在Stackoverflow上至少提到过两次(例如:here和here),但没有给出明确的解决方案。
也许我们现在可以通过您的反馈更加清晰。
Python 3.4.2; py2exe 0.9.2.0
和熊猫一起遇到了同样的问题,但在更新到最新版本之后我才开始工作。
似乎这个错误最近得到了解决,并在Pandas 15.2 https://github.com/pydata/pandas/issues/8602中得到了解决
我在Python 3.4.4中遇到了同样的错误。
我的解决方案是在C:\ Pythob34 \ lib \ site-packagespythoncom.py中修复import语句。
原文:import pywintypes pywintypes.import_pywin32_system_module(“pythoncom”,globals())
更改为:from pywintypes import import_pywin32_system_module import_pywin32_system_module(“pythoncom”,globals())