Python 使用cx\U冻结pandas/NumPy 1.7.0代码时出错

Python 使用cx\U冻结pandas/NumPy 1.7.0代码时出错,python,numpy,pandas,cx-freeze,Python,Numpy,Pandas,Cx Freeze,我正在尝试用cx\u freeze冻结Python脚本。剧本使用了熊猫。当我运行cx_Freeze创建的可执行文件时,我得到以下回溯: [...] File "C:\Python27\lib\site-packages\pandas\__init__.py", line 6, in <module> from . import hashtable, tslib, lib File "ExtensionLoader_pandas_hashtable.py", line 11

我正在尝试用cx\u freeze冻结Python脚本。剧本使用了熊猫。当我运行cx_Freeze创建的可执行文件时,我得到以下回溯:

[...]  
File "C:\Python27\lib\site-packages\pandas\__init__.py", line 6, in <module>  
from . import hashtable, tslib, lib  
File "ExtensionLoader_pandas_hashtable.py", line 11, in <module>  
File "numpy.pxd", line 156, in init pandas.hashtable (pandas\hashtable.c:20273)  
File "C:\Python27\lib\site-packages\numpy\__init__.py", line 147, in <module>  
from core import *  
AttributeError: 'module' object has no attribute 'sys'
当我尝试在cx\U冻结设置文件的“包”下包含“熊猫”时,在冻结过程中失败,原因是:

ValueError: too many values to unpack  
对于Windows7(64位)上的32位和64位版本的Python 2.7.3,我也遇到了同样的问题。pandas版本为0.10.1,cx_Freeze版本为4.3.1


你们中有谁有想法吗?

这两个错误的原因似乎都是
NumPy 1.7.0
(pandas构建于NumPy之上)。当我使用
NumPy 1.6.2
运行代码时,一切正常

我刚看了一下/numpy/core/init.py,注意到最后一行的第二行:

有“delsys”

如果您注释掉这一行,它将按预期工作。我还注意到NUMPY1.6.2中没有“delsys”


您可以尝试联系numpy,以检查他们为什么需要这样做。

这是冻结还是运行冻结的代码导致的
ValueError
?有没有回溯?那是冻结期间的回溯,我今天晚些时候应该可以发布完整的回溯。如果它以,a结尾,但我无法复制。可能是Windows特有的bug。@ThomasK您能看看我的极简版吗?给我一个提示,为什么NumPy 1.7.0失败了,而1.6.2没有失败?谢谢当我将
numpy
文件夹手动复制到build文件夹中时,它就工作了。但是,将其列在
的“包”:['numpy']
下并没有帮助。太好了,这很有效!谢谢。不过,您仍然需要在“packages”下列出“numpy”。嗨,Felix,我使用includes=['numpy']。比如:options=dict(compressed=True,includes=['numpy']、excludes=['Tkinter'、'tcl'、'ttk'、'Tkinter']、optimize=2)、setup(name=“numpybug”、version=“0.1”、description=“Sample cx\u Freeze script”、options=dict(build\u exe=options)、executables=executables)它适合我,只是让你们知道我在numpy邮件列表上贴了一张便条,有一个人后来提交了cx\U冻结补丁。链接在这里:希望有用。哇-非常感谢!我还在numpy邮件列表上粘贴您的讨论以供参考:他们这样做是因为当您从numpy.core import*执行
操作时,
init\uuuuuuuuuupy.py
中的任何名称都将被导入,
这样的非numpy名称污染名称空间是不好的(更好的解决方法是使用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。
ValueError: too many values to unpack