我正在尝试将 py 文件转换为 exe。这是我的安装文件的代码
from distutils.core import setup
import py2exe
setup(console=["mycode.py"])
当我使用 cmd 时,它说: Import Error: No module named easygui
如何让 py2exe 知道 easygui?以及 numpy 和 mathplotlib(都在 mycode.py 中使用)
首先,使用pyinstaller。它更新更好(尽管在切换到 pyinstaller 之前我一直使用 py2exe)而且它似乎有更好的方法来查找包含的库。
但是对于 py2exe,您需要进一步扩展 setup.py 以告诉它要包含的内容(因为它们可能是隐藏的导入)
setup(
console=["mycode.py"],
options={
"py2exe": {
"includes": ["easygui"],
"bundle_files": 1
},
},
zipfile = None,
)
如果这无法构建,easygui
则不在您的 PYTHONPATH 中。确保你没有在你的脚本中做一些特殊的事情来添加一个 pythonpath,这对 py2exe 是不可见的。
对于 numpy 和 matplotlib,您可能需要对这个文件做更多的工作。请参阅此 wiki 以获取帮助
相对于提到的特定 dll 的问题,我遇到了类似的问题,但通过专门排除设置中的问题来解决这些问题:
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=matplotlib.get_py2exe_datafiles()
)`
我会说尝试将该排除添加到您的设置语句中。