Py2Exe和Easgui

时间:2012-11-24 01:04:43

标签: python module py2exe easygui

我正在尝试将py文件转换为exe。 这是我的setupfile的代码

from distutils.core import setup
import py2exe
setup(console=["mycode.py"])

当我使用cmd时,它说: 导入错误:没有名为easygui的模块

如何让py2exe了解easygui?以及numpy和mathplotlib(都在mycode.py中使用)

2 个答案:

答案 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()
)`

我想说尝试将该排除添加到您的设置声明中。