Conda创建虚拟环境无法设置指定Python版本 激活后版本异常
故障复现说明
- 执行
conda create -n env python==3.8创建指定Python 3.8版本的虚拟环境 - 激活该环境后执行
python -V,返回结果为Python 3.6.8,和指定版本不符 - 退出所有conda环境后执行
python -V,返回结果为Python 3.8.13 - 已尝试公开渠道的同类问题解决方案,问题未解决
排查与修复步骤
按顺序执行以下操作,每步完成后做版本验证,定位到问题即可停止后续操作:
- 确认当前调用的Python路径
激活故障虚拟环境,Linux/macOS执行which python,Windows执行where python,查看输出的Python可执行文件路径。正常情况下输出路径应该是conda环境目录下的对应文件,Linux/macOS路径格式为
{你的conda安装目录}/envs/env/bin/python,Windows路径格式为{你的conda安装目录}\envs\env\python.exe。如果路径指向其他目录(比如系统自带的Python3.6安装目录、其他虚拟环境目录),说明PATH优先级异常。 - 清理PATH中的硬编码Python配置
检查你所用shell的配置文件:bash对应~/.bashrc、~/.bash_profile,zsh对应~/.zshrc,Windows直接打开系统环境变量编辑面板,查找所有手动写死的Python3.6路径配置(比如export PATH=/usr/local/python3.6/bin:$PATH这类语句),将这类配置注释或删除,同时确保conda初始化的代码块放在所有PATH配置的最末尾。改完后重启终端,避免旧的环境变量缓存生效。 - 排查别名配置干扰
激活环境后执行alias python,查看是否存在将python命令硬绑定到3.6版本路径的别名配置。如果存在,去对应shell配置文件删除对应的alias语句,当前终端执行unalias python临时清除别名后再验证版本。 - 重建异常虚拟环境
先删除故障环境:conda remove -n env --all
重新创建环境时加通道优先级参数,避免包解析拉取错误版本:conda create -n env python=3.8 -c defaults --strict-channel-priority
创建完成后先不要激活,执行conda list -n env python确认安装的Python版本为3.8.x,再激活验证。 - 修复conda初始化配置
执行conda init重新初始化你当前使用的shell,完成后重启终端再尝试激活环境,解决conda激活脚本未正确注入环境变量的问题。
验证标准
修复完成后满足以下三点即为正常:
- 激活env环境后,
which python/where python输出路径在env环境的目录下 - 激活环境后
python -V返回3.8.x版本 - 退出环境后系统默认Python版本不受影响
内容的提问来源于stack exchange,提问作者plnnvkv
相关产品推荐
相关产品推荐

