翼度科技»论坛 编程开发 python 查看内容

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

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
一、问题描述


  • 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】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具