本文经验仅供参考。
报错信息
1 | Fatal Python error: Py_Initialize: unable to load the file system codec |
问题描述
Win10 系统中使用 Python 3.x 自带的 venv 模块所生成的虚拟环境时出现的错误。
解决办法/TL;DR
恢复安装 venv_path\pyvenv.cfg
(虚拟环境配置文件)所指定的特定路径和版本的 python 解释器。
(或者使用 python -m venv --upgrade "venv_path"
更新配置文件以指定虚拟环境使用系统中当前的 python 解释器
?)
姑且的总结
- 标准库自带的轻量级虚拟环境模块
python -m venv
,
所生成的虚拟环境
的使用前提:重要路径保持不变。
(因为写死了解释器、虚拟环境目录
的绝对路径)
也就是:- 虚拟环境仍然位于初始化时的路径。(不可移动
虚拟环境
目录的路径) - 初始化时所使用的 python 路径仍然未变。(不可移除
初始化虚拟环境时
所使用的 python 及其目录)
- 虚拟环境仍然位于初始化时的路径。(不可移动
错误猜想
PATH
环境变量中的 python 版本错误?
不完全是,而且即便版本一致也依然会报错(可能是因为与配置文件中记录的解释器路径不一致)。
相关参考
https://docs.python.org/zh-cn/3.6/library/venv.html
https://learnku.com/docs/pymotw/venv-create-virtual-environments/3476
https://bugs.python.org/issue22213
https://bugs.python.org/issue35706
https://www.v2ex.com/t/578069
https://stackoverflow.com/questions/5694706/py-initialize-fails-unable-to-load-the-file-system-codec