【问题标题】:PyInstaller: ModuleNotFoundError: No module named 'encodings'PyInstaller:ModuleNotFoundError:没有名为“编码”的模块
【发布时间】:2020-02-26 12:49:08
【问题描述】:

我有一个使用 PySide2 制作的 GUI 应用程序,它使用的一些主要模块是 OpenVino(2019)、dlib、OpenCV-contrib(4.2.x) 和 Postgres(psycopg2),我正在尝试使用 PyInstaller ( --debug 是 True)。

程序在没有错误的情况下被冻结,但在执行过程中,我收到以下错误:

Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

之后应用程序退出。

我尝试了其他 stackoverflow 问题/github 问题中提供的许多建议,但都没有奏效。

我有 python 版本 3.7.6,但我也尝试过 3.6.8(本地安装和在 pycharm 中创建新的 venv 之后)。我也尝试过不同版本的pycharm(它显示低于3.5的其他错误)。我已经尝试过 pycharm 3.6 开发分支和主分支。

我在 env 变量中检查了我的 PYTHONPATH 和 PYTHONHOME,它们指向 python 的位置。

我已修改我的规范文件以包含必要的二进制文件、文件、导入和文件夹。如果需要,我会分享它。还有构建或执行期间的任何其他日志。

我想知道我应该怎么做才能解决这个问题,这个问题是由于某些组件还是 PyInstaller 问题,如果是,我应该在 github 上提出它。

我的操作系统是 windows 10。

【问题讨论】:

    标签: python python-3.x opencv pyinstaller openvino


    【解决方案1】:

    您更改了 python 版本。所以,你必须根据 Python 版本给出一个新的路径。 只需删除所有旧版本和当前版本,然后重新安装新的 Python v.3.8.1

    【讨论】:

    • 我在卸载旧版本后删除了它们,现在我的路径中只有一个版本(3.7.6)。我不想使用 3.8,因为有些模块目前不能正确支持 3.8(如 pyinstaller)
    • 删除环境变量再重新添加即可。
    • 检查是否在虚拟环境中安装了库。
    • 是的,我已经冻结了需求,并在 venv 中重新安装了它们。我的应用程序在冻结之前可以正常运行。
    【解决方案2】:

    您需要在应用程序文件夹中包含 base_library.zip

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 2018-03-08
      • 2015-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多