致命的 Python 错误:initfsencoding:无法加载文件系统编解码器

新手上路,请多包涵

我已经创建了一个简单脚本的 .exe 文件,目的是在服务器上运行它,但是我似乎无法弄清楚这个错误的含义或在线找到任何答案。故障代码如下:

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

Current thread 0x00003c8c (most recent call first):

为了做到这一点,我使用了 pyinstaller

 pyinstaller --onefile MyScript.py

当这不起作用时,我也尝试过

pyinstaller MyScript.py

我在 Windows 10 上运行,python 3.7 在管理员命令提示符下,在 C:\ 文件目录中。

我的系统路径是

[”, ‘C:\Users\user\AppData\Local\Programs\Python\Python37-32\python37.zip’, ‘C:\Users\user\AppData\Local\Programs\Python\Python37-32\DLLs ‘, ‘C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib’, ‘C:\Users\user\AppData\Local\Programs\Python\Python37-32’, ‘C:\ Users\user\AppData\Roaming\Python\Python37\site-packages’, ‘C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages’, ‘C:\Users\ user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\win32’, ‘C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\win32 \lib’, ‘C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\Pythonwin’]

任何帮助表示赞赏

原文由 EcSync 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.2k
2 个回答

所以我设法通过重建 exe 文件并将所有站点包从 python home 转储到 exe dist 文件夹来解决这个问题。将再次检查它们以找出导致问题的原因。

编辑

我缩小了范围,发现具体问题是 plotly 包没有被转储到 dist 文件夹中。我不确定为什么,但这是我使用的唯一一个 pyinstaller 无法接收的包

原文由 EcSync 发布,翻译遵循 CC BY-SA 4.0 许可协议

看起来这是由于 python 安装中的一些问题而发生的。你确定python配置正确吗?您是否将其添加到 ENVIRONMENT VARIABLES

很可能是因为您的 PYTHONPATH ,即定位 site-packages 的配置不正确。一旦您将 PYTHONPATH 指向正确的 python3.x 安装,它应该可以正常工作。

从您的 cmd 启动 python 并检查它正在加载哪些站点包。

 import sys
sys.path

然后验证您的 PYTHONHOME 中实际存在的内容

原文由 Vineeth Sai 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题