conda环境下piph和python指向不正确
提示:这里简述项目相关背景:
虚拟环境(conda
)里安装了 Python 3.8
,但 python 命令仍然调用的是系统的 Python 2.7
。这是因为PATH
变量优先使用了系统的 Python
,而不是 Anaconda
的环境。
python指向不正确
输出当前conda环境名为excalibur
虚拟环境的下的python版本
(excalibur) hanallen: Excalibur $ command -v python
/Users/hanallen/.pyenv/shims/python
(excalibur) hanallen: Excalibur $
python 命令指向了 Pyenv (~/.pyenv/shims/python)
,而不是 Anaconda (/Users/hanallen/opt/anaconda3/envs/excalibur/bin/python)
。
$ /Users/hanallen/opt/anaconda3/envs/excalibur/bin/python --version
Python 3.8.20
原因分析:
这说明 Pyenv 在我的 shell 配置 (.bashrc 或 .zshrc) 中优先级更高,导致 Python 版本问题。
根据上述原因,现在查看当前环境变量,果然,/Users/hanallen/.pyenv/shims
在 /Users/hanallen/opt/anaconda3/envs/excalibur/bin
前面,就说明 Pyenv 影响了优先级。
(excalibur) hanallen: Excalibur $ echo $PATH
/Users/hanallen/.pyenv/plugins/pyenv-virtualenv/shims:/Users/hanallen/.pyenv/shims:/Users/hanallen/.pyenv/bin:/usr/local/opt/openssl@1.1/bin:/Users/hanallen/.local/bin:/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/bin:/Users/hanallen/.nvm/versions/node/v12.18.0/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/System/Cryptexes/App/
(excalibur) hanallen: Excalibur $ export PATH="/Users/hanallen/opt/anaconda3/envs/excalibur/bin:$PATH"
解决方案:
调整 PATH,让 Anaconda 优先 直接修改环境变量
$ export PATH="/Users/hanallen/opt/anaconda3/envs/excalibur/bin:$PATH"