【问题标题】:Py2Exe and EasguiPy2Exe 和 Easgui
【发布时间】:2012-11-24 01:04:42
【问题描述】:

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

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

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

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

【问题讨论】:

  • 运行生成的 exe 时是否会因导入错误而失败,或者 py2exe 构建过程是否失败?
  • 它甚至不创建 exe

标签: python module py2exe easygui


【解决方案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,您可能需要对这个文件做更多的工作。见this wiki for help

【讨论】:

  • 谢谢你的帮助,我现在有一个新错误,它现在创建了 dist 文件,实际上似乎正在识别 easygui 和 matplot lib,但是当找到 dll 时:查找需要的dll错误:ligbk-win32-2.0-0.dll:没有这样的文件或目录
  • 我下载了那个 dll,现在当我再次使用 cmd 时,它说我现在需要 libgobject-2.0-0.dll
  • 根据库的不同,您可能需要添加许多 dll。这是用于 numpy 还是 matplot?您是否关注了这些模块的 wiki?
  • 是的,我从那里下载了 numpy 和 mathplotlib,我可以继续单独下载 dll 文件吗?
  • 嗯,您需要的任何 dll 文件都应该在安装软件包时已经在您的系统上。问题是 py2exe 需要知道它们在哪里。我没有太多打包 numpy 或 matplotlib 的 windows 经验,但我强烈建议您尝试 pyinstaller。它至少应该更加努力地让它开箱即用。
【解决方案2】:

相对于提到的特定 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()
)`

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 2011-11-19
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多