我正在尝试将py文件转换为exe。 这是我的setupfile的代码
from distutils.core import setup
import py2exe
setup(console=["mycode.py"])
当我使用cmd时,它说: 导入错误:没有名为easygui的模块
如何让py2exe了解easygui?以及numpy和mathplotlib(都在mycode.py中使用)
答案 0 :(得分:1)
首先,使用pyinstaller。它更新更好(虽然我在切换到pyinstaller之前使用了py2exe)并且它似乎有更好的方法来查找包含的库。
但是对于py2exe,你需要更多地扩展setup.py来告诉它包含什么(因为它们可能是隐藏的导入)
setup(
console=["mycode.py"],
options={
"py2exe": {
"includes": ["easygui"],
"bundle_files": 1
},
},
zipfile = None,
)
如果无法构建,则easygui
不在您的PYTHONPATH中。确保你没有在你的脚本中做一些特殊的事情来添加python路径,这对于py2exe是不可见的。
你可能需要为numpy和matplotlib这个文件做更多的工作。见this wiki for help
答案 1 :(得分:0)
相对于上面提到的具体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()
)`
我想说尝试将该排除添加到您的设置声明中。