Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
Current thread 0x00007668 (most recent call first):
问题原因:python路径错误
我是直接运行exe程序(几乎没有配置python环境),我的python和python环境安装在e盘,但是运行的exe程序的python环境指向c盘,所以造成错误。
解决方法:
一、更改python路径,使用非系统路径:完整定义系统环境
-
检查Python路径配置: 确保你的系统环境变量中包含Python的路径。你可以通过以下步骤检查和配置:
- 右键点击“此电脑”或“我的电脑”,选择“属性”。
- 点击“高级系统设置”。
- 点击“环境变量”。
- 在“系统变量”中找到
Path
变量,并确保包含Python的安装路径(例如E:\Python38
)。
-
设置PYTHONHOME和PYTHONPATH: 你可以手动设置
PYTHONHOME
和PYTHONPATH
环境变量,以确保Python能够找到必要的模块。- 打开“环境变量”设置窗口。
- 添加一个新的系统变量
PYTHONHOME
,值为你的Python安装路径(例如E:\Python38
)。 - 添加一个新的系统变量
PYTHONPATH
,值为Python的标准库路径(例如E:\Python38\Lib
和E:\Python38\Lib\site-packages
)。
-
确保Python安装完整: 确保你的Python安装是完整的,没有缺少必要的文件或模块。如果有必要,可以尝试重新安装Python。
出现新问题:
Fatal Python error: init_sys_streams: can't initialize sys standard streams Traceback (most recent call last): File "E:\python\Python39\lib\io.py", line 54, in <module> ImportError: cannot import name 'open_code' from 'io' (unknown location)
原因:该错误表明你的Python安装中可能存在文件缺失或损坏,特别是io
模块中的open_code
函数无法导入。查找博客发现,需要删除设置的PYTHONPATH和PYTHONHOME。。。
解决方法尝试:
cmd输入:
python -m site
修改user-site路径
USER_BASE 和 USER_SITE 其实就是默认的启用Python通过pip自动下载的脚本和依赖安装包的基础路径。
1、使用命令python -m site -help
打开:E:\python\Python39\lib\site.py
修改路径:
这里的USER_BASE 需要特殊注意:其会自动在指定的路径后面添加/Python37/Scripts(和自己的安装路径有关),有强迫症的自己注意!
然后再次使用命令查看