使用 pyinstaller 生成的可执行文件遇到“致命的 python 错误:initfsencoding”

Posted

技术标签:

【中文标题】使用 pyinstaller 生成的可执行文件遇到“致命的 python 错误:initfsencoding”【英文标题】:Executable made with pyinstaller experiences "Fatal python error: initfsencoding" 【发布时间】:2019-01-21 16:00:28 【问题描述】:

我可以在我的电脑上通过 sublime text 运行我的 python (python 3.7) 程序。该程序使用 tkinter 和 sqlite3。 pyinstaller 不支持吗?

我在运行它时遇到的错误(只需双击在dist 中创建的文件:

Fatal Python error: initfsencoding: unable to load the file system codec 
zipimport.ZipImportError: can't find module 'encodings'

如果有人有这方面的经验,我们将不胜感激!

如果问题可能出在代码本身,我可以发布代码。

【问题讨论】:

这是 pyinstaller 的问题,而不是 tkinter 或其他模块的问题。我确定您使用的是python 3.7。尝试卸载你的python(之前恢复你的文件),然后安装python 3.6.3 已编辑以包含 python 版本。是的,我正在运行 3.7。为什么python 3.6.3 好吧,我也不知道答案,你可以尝试使用除3.7之外的任何python 3.6版本。当我编写这个 GUI application 时,我也遇到了同样的情况,它也使用类似于 pyinstaller 的模块,即 cx_Freeze 天哪,它成功了!谢谢!将其发布为答案,我会接受。 【参考方案1】:

您正在使用python 3.7。据我测试,pyinstaller 之类的模块似乎不适用于此版本。尝试卸载你的python(不要忘记之前备份你的文件),然后安装python 3.6.3 或除python 3.7 之外的任何其他python 3 版本。我也发生了同样的事情,我这样做了。它奏效了。

【讨论】:

以上是关于使用 pyinstaller 生成的可执行文件遇到“致命的 python 错误:initfsencoding”的主要内容,如果未能解决你的问题,请参考以下文章

使用 PyInstaller 编译 PyQt5 Python 应用程序时遇到问题

PyInstaller库的使用

使用pyinstaller打包.py程序

如何在linux平台将python封装成exe文件,我用cxfreeze试过,生成了linux下的可执行文件,无法生成exe文件

如何在可执行文件中包含带有 pyinstaller 的特定 .jar 文件?

pyinstall打包资源文件