【问题标题】:How to resolve No or missing module errors when converting to an executable using pyinstaller -Python使用 pyinstaller -Python 转换为可执行文件时如何解决没有或缺少模块错误
【发布时间】:2015-11-24 00:50:14
【问题描述】:

我正在尝试将 python 文件转换为可执行文件。够容易吧?

我在一个不导入任何内容的简单程序上使用了 pyinstaller。它就像一个魅力。然后,我尝试了另一个带有导入模块的虚拟程序(PyQt4,sys,matplotlib),我的实际程序将拥有。在这里我遇到了问题。

当我在 pyinstaller 创建的“dist”文件夹中运行应用程序时出现此错误。

致命的 Python 错误:Py_Initialize: 无法加载文件系统编解码器 ImportError:没有名为“编码”的模块

我找到了另一个可能解决此问题的网站,但他的情况并不完全相同:http://code.activestate.com/lists/python-dev/118463/

这让我尝试了我之前下载的 QT 设计器。也许如果我可以将它生成的 .ui 文件转换为 .py 文件,我会没事的。我可以使用他的解决方案,一切都会好起来的。

那时我得到了这个错误:

模块中的文件“C:\Anaconda3\Lib\site-packages\PyQt4\uic\pyuic.py”,第 26 行

从 PyQt4 导入 QtCore mportError: 没有名为“PyQt4”的模块

我还应该提到我拥有的所有模块都是通过 Anaconda 3 完成的

我想在 conda... 项目中安装 pyqt?会解决问题。它没有。老实说,我不完全知道这些是干什么用的。

现在我正在考虑只使用 QT 设计器制作的 c++ 文件,而不是转换它们并导入 python 来告诉 gui 做什么。

你们认为如何解决上述错误?

【问题讨论】:

  • 我在使用另一个工具编译 python 代码时遇到了类似的问题。我没有找到合适的解决方案,但作为一种解决方法,您可以尝试显式导入缺少的模块。例如。 import encodings
  • 就是这样。很难相信解决方案如此简单。
  • 我把我的评论变成了答案,这样你就可以接受它并且其他用户可以找到它。

标签: qt pyqt4 anaconda pyinstaller pyuic


【解决方案1】:

短期解决方案/解决方法:
在您的 python 文件中明确导入缺少的模块。在您的情况下:import encodings
正确的解决方案:
通过分别导入每个模块,您最终可能会移植许多模块和子模块。在这种情况下,您需要告诉 pyinstaller 在哪里可以找到模块(例如,使用编译标志)。

【讨论】:

    猜你喜欢
    • 2019-09-19
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 2020-11-18
    • 2023-03-27
    • 2017-07-02
    相关资源
    最近更新 更多