我已经创建了一个简单脚本的.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的admin命令提示符下的C:\文件目录中运行。
我的sys.path是
['','C:\ Users \ user \ AppData \ Local \ Programs \ Python \ Python37-32 \ python37.zip','C:\ Users \ user \ AppData \ Local \ Programs \ Python \ Python37-zip 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']
感谢您的帮助
答案 0 :(得分:1)
由于python安装中的某些问题,类似情况正在发生。您确定python配置正确吗?您是否将其添加到ENVIRONMENT VARIABLES
中?
最可能的原因是您的PYTHONPATH
,即定位site-packages
的{{1}}配置不正确。将PYTHONPATH
指向当前的python3.x
安装后,它应该可以正常工作。
一旦从您的cmd启动python
并检查它正在加载哪个站点程序包。
import sys
sys.path
然后验证您的PYTHONHOME
答案 1 :(得分:0)
因此,我设法通过重建exe文件并将所有站点包从python home转储到exe dist文件夹来解决此问题。将再次通过它们找出导致问题的原因之一。
答案 2 :(得分:0)
此错误意味着 Py_SetPath 强制 python 使用不包含 python38.zip 的路径,将 python38.zip 的完整路径名添加到 Py_SetPath,或者不使用 Py_SetPath 并使用 python38._pth 代替。< /p>
#define PY_SSIZE_T_CLEAN
#include <Python.h>
int main(int argc char **argv)
{
Py_SetPath(L"C:\\path-to\\python-3.8.5-embed-amd64\\python38.zip;C:\\path-to\\python-3.8.5-embed-amd64");
Py_Initialize();
// ...
}
答案 3 :(得分:0)
使用 --standalone 将使用整个 python 环境构建二进制文件。你不需要在目标机器上安装 python 来运行它。