【发布时间】:2015-02-14 05:45:43
【问题描述】:
我正在尝试使用 py2exe 将我的 .py 脚本转换为可执行文件。到目前为止,我遇到了许多问题,这些问题在很大程度上已通过下面安装文件中的“选项”得到解决。但是现在我遇到了一个我无法找到解决方案的问题,并且想知道其他人是否也遇到过同样的问题并修复了它。
当我使用“python setup.py py2exe”执行下面的设置文件时,它给了我一个可执行文件,但是当我运行它时,它抱怨“没有名为 builtins 的模块”。
我能找到的关于这个主题的唯一其他帖子表明内置函数是 python3 的东西,但我运行的是 2.7。
感谢您对此的任何建议或提示。
from distutils.core import setup
import py2exe
from distutils.filelist import findall
import os
import matplotlib
matplotlibdatadir = matplotlib.get_data_path()
matplotlibdata = findall(matplotlibdatadir)
setup(
console=['DET14.py'],
options={
'py2exe': {
'packages' : ['matplotlib', 'pytz'],
'dll_excludes':['MSVCP90.DLL',
'libgdk-win32-2.0-0.dll',
'libgobject-2.0-0.dll',
'libgdk_pixbuf-2.0-0.dll'],
'includes':['scipy.sparse.csgraph._validation',
'scipy.special._ufuncs_cxx']
}
},
# data_files=matplotlibdata_files
data_files=matplotlib.get_py2exe_datafiles()
)
以下是错误消息的完整列表:
【问题讨论】:
-
这是错误的全部内容吗?根本没有堆栈?
-
好点...我已经添加了我收到的完整错误消息。
-
该堆栈跟踪指向正在打包的一段代码做一些有趣的事情。可能值得看看它到底在做什么。
-
嗯,奇怪的是程序完美地作为 python 脚本执行,但是当它作为可执行文件运行时却给出了这个错误。到目前为止,此类问题已通过修改我的设置文件得到解决。我只是在任何地方都找不到我应该添加(或其他修复)什么包来解决这个错误。
-
我不怀疑 py2exe 做错了什么,但您仍然需要查看异常源自的代码以弄清楚 what py2exe 在做什么错误的。毕竟,检查无法在 py2exe 下运行的代码是弄清楚为什么该代码无法在 py2exe 下运行的先决条件。