Ubuntu激活Python虚拟环境后which返回全局python路径如何修复
问题修复方案
原因分析
你提供的PATH输出已经显示虚拟环境的bin目录/mnt/sdb2/Projects/env/bin处于路径最优先级,出现该问题最常见的诱因是Shell中存在python/pip的固定别名,或是Shell的命令路径缓存未更新。
修复步骤
第一步:检查是否存在别名冲突
执行以下命令查看当前Shell是否给python、pip设置了全局别名:alias | grep -E 'python|pip'如果输出中有类似
alias python='/usr/bin/python'的条目,说明是别名优先级高于路径查找导致的问题。临时取消别名可执行:unalias python pip永久生效需要编辑你当前使用的Shell配置文件(
~/.bashrc对应Bash、~/.zshrc对应Zsh),删除里面的python、pip相关别名配置,保存后执行source ~/.bashrc(对应你使用的Shell类型)即可生效。第二步:清理Shell命令路径缓存
Bash、Zsh等Shell会缓存常用命令的路径避免重复查找,激活虚拟环境后缓存未更新也会导致调用到全局路径,执行命令清理缓存:hash -r清理后再次执行
which python验证路径是否正确。第三步:验证虚拟环境激活脚本完整性
如果以上两步都无效,先执行deactivate退出虚拟环境,重新执行激活命令:source /mnt/sdb2/Projects/env/bin/activate若依旧无效,可以删除现有虚拟环境重新创建:
rm -rf /mnt/sdb2/Projects/env python3 -m venv /mnt/sdb2/Projects/env source /mnt/sdb2/Projects/env/bin/activate重新创建后再验证
which python的输出即可。
内容的提问来源于stack exchange,提问作者Muhammad Anas Raza
相关产品推荐
相关产品推荐

