是否有 py2exe 无法处理的主要/常见/重要包?
我目前正在研究从 Python 程序创建 .exe 的可能性,该程序将使用 Tkinter、一些 Excel 文件读取模块、NumPy、SciPy 和 matplotlib:尝试使用 py2exe 实现这一目标是否现实?
最佳答案
我通常使用 Scipy、matplotlib、wxpython 和 win32com 或 Machin 的 xlrd/xlwt 模块构建 py2exe 单文件可执行文件。从未使用过 Tkinter,但应该不是问题,可能 wxpython 更挑剔。
我在构建可执行文件之前和之后发现了 numpy/scipy、matplotlib 和 wxpython 的一些问题,但在您知道该怎么做之后,它就可以顺利工作了。
一些问题:
matplotlib 需要指示一些辅助文件的位置。您需要添加到 setup.py
datafiles = matplotlib.get_py2exe_datafiles()
在执行 py2exe 可执行文件时,由于模块中的一些表达式,numpy/scipy 给我带来了一些问题。 Numpy 有一些行,例如:
__doc__ += "something more"
当 __doc__
为 None 时失败。
为此,我必须手动修改 numpy 脚本(包括 if 的)。不知道新版本是否解决了这个问题。
wxpython 通常是问题的根源,因为计算机中必须存在一些必需的 microsoft dll 才能工作。只是您必须小心,确保在包中提供它们,或者至少阻止您的用户了解该问题。
关于python - 重要的包和模块与 py2exe 不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2912295/