2

我正在尝试使用 cx_Freeze 冻结 Python 脚本。该脚本使用熊猫。当我运行 cx_Freeze 创建的可执行文件时,我得到以下 Traceback:

[...]  
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'

我使用的唯一熊猫代码(用于测试)是:

from pandas import DataFrame
import pandas as pd
d = {'one' : [1., 2., 3., 4.],
     'two' : [4., 3., 2., 1.]}
df = DataFrame(d)

当我尝试在 cx_Freeze 设置文件中的 'packages' 下包含 'pandas' 时,它在冻结过程中失败:

ValueError: too many values to unpack  

对于 Windows7(64 位)上的 32 位和 64 位版本的 Python 2.7.3,我遇到了同样的问题。pandas 版本是 0.10.1,cx_Freeze 是 4.3.1。

你们中的任何人熊猫或 cx_Freeze 大神有什么想法吗?

4

2 回答 2

5

我只是查看了 /numpy/core/ init .py 并注意到倒数第二行:

有“del sys”

如果您注释掉这一行,它将按预期工作。我还注意到 numpy 1.6.2 中没有“del sys”

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

于 2013-02-24T07:57:31.120 回答
0

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

于 2013-02-20T22:05:57.547 回答