VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • 【原创】创建虚拟环境创建时未指定 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 环境中的版本

  1. 发现创建虚拟环境时未指定 Python 解释器版本

报错原因:虚拟环境中没有 python.exe

未安装到虚拟环境原因:如果创建虚拟环境时未指定 Python 解释器版本,系统就会使用默认的 Python 解释器(即 base 环境中的 Python 解释器)使用的 pip 工具属于 base 的 Python 解释器,故使用 pip install 命令时,包会被下载到 base 环境中

三、解决办法
方法一(推荐):重新创建一个指定 Python 解释器的虚拟环境

删除原环境:conda env remove --name <env_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


相关教程