2013-02-19 34 views
2

我想凍結一個Python腳本與cx_Freeze。該劇本利用熊貓。當我運行由cx_Freeze創建可執行文件,我得到以下回溯:凍結熊貓/ NumPy 1.7.0代碼與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' 

我使用(用於測試)唯一的大熊貓代碼:

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

當我嘗試包括「大熊貓」

ValueError: too many values to unpack 

我也遇到過同樣的問題爲Python 2.7.3對Windows7的(64位),32個和64位版本:通過在cx_Freeze安裝文件「包」,它在與凍結過程失敗。熊貓版本是0.10.1,cx_Freeze是4.3.1。

請問熊貓或cx_Freeze神的任何人有想法嗎?

+0

ValueError是凍結還是運行凍結的代碼?它有跟蹤嗎? – 2013-02-20 12:46:56

+0

這是凍結過程中的回溯,我應該能夠在今天晚些時候發佈完整的回溯。 – 2013-02-20 12:52:31

+0

如果它以[此追蹤](https://gist.github.com/takluyver/4501992)結尾,則是[遇到其他人遇到的錯誤](https://bitbucket.org/anthony_tuininga/cx_freeze/issue/16/失敗的奇怪代碼路徑),但我一直無法重現。可能是一個Windows特定的錯誤。 – 2013-02-20 13:24:46

回答

5

我只是看着/ numpy的/核心/ 初始化的.py,並在最後第二條注意:

有「德爾SYS」

,如果你註釋掉這一行,它的工作原理如預期。我也注意到在numpy中沒有「del sys」1.6.2

你可以嘗試聯繫numpy來檢查他們爲什麼需要這樣做。

+0

完美,這個作品!非常感謝。儘管如此,你仍然需要在'包'下列出'numpy'。 – 2013-02-24 11:00:31

+1

嗨費利克斯我使用includes = ['numpy']代替。例如:options = dict(compressed = True,includes = ['numpy'],排除= ['Tkinter','tcl','ttk','tkinter'],optimize = 2),setup( name =「numpybug 「, version =」0.1「, description =」Sample cx_Freeze script「, options = dict(build_exe = options), executables = executables)它適用於我。 – dynamicgl 2013-02-24 13:52:00

+0

嗨菲利克斯,只是讓你知道我已經在numpy郵件列表上發佈了一條消息,稍後有人爲cx_freeze提交了一個補丁。鏈接在這裏:http://sourceforge.net/p/cx-freeze/bugs/36/希望它是有用的。 – dynamicgl 2013-02-25 08:16:01

0

這兩個錯誤的原因似乎是NumPy 1.7.0(熊貓建立在NumPy上)。當我用NumPy 1.6.2運行代碼時,一切正常。

+0

@ThomasK你能看看我的簡約[代碼示例](https://gist.github.com/fzumstein/5007372)給我一個暗示,爲什麼NumPy 1.7.0失敗,而1.6.2是不?謝謝 – 2013-02-21 19:50:16

+0

當我'numpy'文件夾手動複製到生成文件夾,它的作品。但是,通過將其列在「包」下:['numpy']'不起作用。 – 2013-02-21 22:06:55