不认识你 发表于 2024-5-7 14:15:41

【原创】创建虚拟环境创建时未指定 Python 解释器版本所引发的问题

一、问题描述


[*]conda create -n codeExtract创建虚拟环境
[*]pip install -r requirements.txt安装Python包
[*]python xxx.py运行某Python文件
[*]出现报错
Fatal Python error: initfsencoding: unable to load the file system codec ModuleNotFoundError: No module named 'encodings' Current thread 0x00008ad8 (most recent call first):'
[*]pip install 所安装的包不在虚拟环境中
二、排查问题

1. 首先检查已经激活了虚拟环境
2. 使用 pip show检查安装 Python 包的路径

[*]路径:C:\Users\xxx\anaconda3\lib\site-packages 这个目录下的包是全局的,所有虚拟环境都可以使用
[*]说明使用 pip install 下载的包没有被下载到虚拟环境中,而是被下载到了全局的 Python 环境中(即 base)
[*]使用 pip --version 检查 pip 路径,结果为pip 22.3.1 from C:\Users\xxx\anaconda3\lib\site-packages\pip (python 3.10)
说明使用的 pip 是 base 环境中的版本
3. 发现创建虚拟环境时未指定 Python 解释器版本

[*]报错原因:虚拟环境中没有 python.exe
[*]未安装到虚拟环境原因:如果创建虚拟环境时未指定 Python 解释器版本,系统就会使用默认的 Python 解释器(即 base 环境中的 Python 解释器)使用的 pip 工具属于 base 的 Python 解释器,故使用 pip install 命令时,包会被下载到 base 环境中
三、解决办法


[*]方法一(推荐):重新创建一个指定 Python 解释器的虚拟环境
删除原环境:conda env remove --name
新创建环境:conda create -n myenv python=3.9
再激活虚拟环境并安装相应的包,并使用 python 命令运行即可
[*]方法二:指定某个 Python 解释器的绝对路径:

C:\Users\xxx\anaconda3\python xxx.py ( 这里使用的解释器是 base 环境中的 )
四、总结

1. 创建虚拟环境是记得指定 Python 解释器版本
2. 使用 base 环境的 Python 解释器 会导致使用pip install 命令时,安装的包会下载到 c:\users\xxx\anaconda3\lib\site-    packages 目录下,所有虚拟环境都可使用

来源:https://www.cnblogs.com/InfiniteProgress2023/p/18176739
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 【原创】创建虚拟环境创建时未指定 Python 解释器版本所引发的问题