【问题标题】:Bundling PyQwt with py2exe将 PyQwt 与 py2exe 捆绑在一起
【发布时间】:2023-03-27 13:02:01
【问题描述】:

我有一个标准的 py2exe 设置脚本,我将基于 PyQt 的应用程序捆绑到 Windows .exe 文件中。

今天我尝试了一个使用 PyQwt 模块的简单脚本,但它似乎不起作用。 py2exe 运行正常,但是当我执行它创建的 .exe 时,它​​将以下内容转储到日志文件中并且不运行:

Traceback (most recent call last):
  File "qwt_test.pyw", line 5, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "PyQt4\Qwt5\__init__.pyo", line 32, in <module>
  File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading PyQt4\Qwt5\Qwt.pyd

当我在build\bdist.win32\winexe\collect-2.5 目录中查看PyQt4\Qwt5\ 时,Qwt.pyd 肯定在那里。

我似乎无法在网上找到有关此错误的任何有用信息。什么可能导致它?谢谢。

【问题讨论】:

    标签: python pyqt py2exe


    【解决方案1】:

    py2exe 不是将 Python 应用程序的 exe 文件放在一起的唯一方法,也许也不是最好的方法——尤其是它几乎不支持 pyqt。拜托,请查看PyInstaller,它确实了解 PyQt(以及 Linux 和 Mac,如果你在乎的话......)——只要确保你使用 SVN 头检出,而不是“发布”版本,在这个时候已经严重过时(这个问题希望很快就会消失......)。

    【讨论】:

    • Alex,py2exe 对我来说与 PyQt 配合得很好,只是 PyQwt 部分导致了问题。为什么你更喜欢 PyInstaller?对我来说,它似乎不太受支持,更新较少并且使用起来有点过时。
    • 曾经是(较少支持 &c),但最近发生了变化——请参阅pycon.it/conference/talks/… 和 pycon.it/static/stuff/slides/…(不要担心 URL,它是英文的;-)。一旦你 svn co svn.pyinstaller.org/trunk pyinstaller,pyinstaller/doc/CHANGES.txt 列出了自 1.3 以来的许多变化。我只希望他们尽快发布!-)
    • 我以前使用过 PyInstaller,实际上它成功地打包了 PyQwt 应用程序。但我总是对缺乏支持感到失望。必须从 SVN 下载并不是一个健康项目的标志。我希望你是对的,他们很快就会改进。
    • 嘿,你现在已经收到了一些当前开发者的电子邮件(上面 URL 中提到的一群意大利程序员)——为什么不直接让他们知道,他们听到的用户越多,他们越有可能决定发布(&也许文档;-)而不是继续堆积功能......!-)
    【解决方案2】:

    一些选项:

    1. 尝试使用 py2xe bundle_files options (3, 2, 1)(特别是如果您将它们全部放在一个大库 zip 中,一些 dll 不喜欢这样)。
    2. 确保msvcp71.dll 的副本存在于 windows\system32 或可执行文件的目录中。
    3. 尝试明确排除 dll(将 Qwt.pyd 添加到 dll_excludes 选项并(在构建后)将 Qwt.pyd(和 _Qwt.pyd,如果存在)复制到您的可执行路径。

    【讨论】:

      猜你喜欢
      • 2014-01-26
      • 2019-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 2018-05-16
      • 2011-04-28
      相关资源
      最近更新 更多