我遇到了Windows上的Python 2.7.7中的py2exe和pandas问题(安装了Anaconda发行版的版本)。
我想创建一个可执行文件:
以下是我的代码名称test.py
from pandas import read_excel
file_name_db = input('Insert file name (e.g. "database1.xls"): ')
data = read_excel(file_name_db, sheet_name_db=0, index_col=None, na_values=['NA'])
print data.unit
raw_input("Press enter to exit")
然后我使用这个setup.py
文件:
from distutils.core import setup
import py2exe
import pandas
setup(options = {"py2exe":{"includes": ["zmq.backend.cython"],"excludes": ["zmq.libzmq"], "dll_excludes": ["MSVCP90.dll","HID.DLL", "w9xpopen.exe", "libzmq.pyd"]}}, console = [{'script': 'test2.py'}])
最后,我只需在cmd窗口python setup.py py2exe
请注意,setup()
中的所有选项均已经过测试,以避免所有.dll
编译问题。
结果:
test.exe
文件夹dist
时没有警告或错误
虽然test.exe
在Spyder 中正常有效,但test.py
仍未运行
即使我在test.exe
中插入from pandas import read_excel
但我没有要求test.py
个文件input
也无法运行
test.exe
时,黑色命令窗口出现闪烁光标10-15秒,然后出现一条快速消息,窗口立即关闭。 (我无法阅读消息所说的内容,我无法在build
或dist
个文件夹中找到任何日志文件。test.exe
与numpy
或datetime
等模块正确运行但没有pandas
我希望我已经清楚地解释了这个问题。
提前感谢您花时间和精力帮我解决这个问题!
罗伯特
答案 0 :(得分:4)
我认为问题是您需要在setup.py中指定matplotlib数据文件。至少那是我在尝试你的例子时遇到的错误。
这是我的test.py:
from pandas import read_excel
file_name_db = raw_input('Insert file name (e.g. "database1.xls"): ')
data = read_excel(file_name_db, sheet_name_db=0, index_col=None, na_values=['NA'])
print data
raw_input("Press enter to exit")
这是我的setup.py:
from distutils.core import setup
import py2exe
import pandas
import matplotlib
setup(options = {
"py2exe":
{
"includes": ["zmq.backend.cython"],
"excludes": ["zmq.libzmq"],
"dll_excludes": ["MSVCP90.dll","HID.DLL", "w9xpopen.exe", "libzmq.pyd"]
}
},
data_files=matplotlib.get_py2exe_datafiles(),
console = [{'script': 'test.py'}]
)
我必须编辑test.py代码才能运行它。我将“data_files =”行添加到setup.py中。 test.py和内置的test.exe现在都适用于我。
为了调试这个,我从命令行运行了test.exe,而不是双击它。这样你就会看到输出,而不是闪烁然后消失的控制台。当我这样做时,我看到了关于matplotlib数据文件的错误,这导致我google和解决方案。
道歉,但我无法回复评论,所以我编辑了我的帖子。可能是您安装了不同版本的组件。我搜索了那个错误,似乎没有任何明显的解决方案。我有python v2.7.5(通过activestate),pandas 0.14.1(通过scipy stack 14.8.27)