1

我正在尝试将 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 中使用)

4

2 回答 2

1

首先,使用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 以获取帮助

于 2012-11-24T01:13:36.703 回答
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()
)`

我会说尝试将该排除添加到您的设置语句中。

于 2014-12-17T15:53:17.477 回答