pyinstaller 在 python 3.7.0 下的错误

注意,本文已被作者标记为“过时的内容”,这意味着其中的信息可能已经不再准确,请酌情参阅。

本文写于 2018.08.13,是阐述当时 pyinstaller 的最新版本 v3.3.1 不兼容 python 3.7.0 而导致的相关问题,但 pyinstaller 刚刚(2018.09.10)发布了新版本 v3.4 ,并在发布日志明确表示已经添加了对 python 3.7 的支持。故本文是一篇过时的文章,请酌情阅读。

以下是原始正文。


正在卸载 python 3.7.0,重装 3.6.6,看进度条估计还要一会儿,趁这功夫把坑贴出来……

之前一直用 pyinstaller 来打包、发布一些 python 项目,最近升级 python 到 3.7.0 后,再用 pyinstaller 打包,打包过程中没有问题,但执行打包结果时报错:

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

排查后确认是 pyinstaller(目前最新版本为 v3.3.1) 对 python 3.7.0 的支持存在问题,见作者的回复

说白了就是 pyinstaller 目前还不支持 python 3.7

目前还没有看到有什么方法能修复这个问题,解决方法也只能是重装 python,回滚到 3.7 以前,亲测 3.6.6 没有问题。

然后,坐等作者升级。