Pyenv设置本地Python版本后,python --version显示不一致求助
Pyenv设置本地Python版本后
python --version不生效的解决办法 问题场景
使用Pyenv管理Python版本,设置本地项目版本后,python --version仍显示系统默认版本,相关命令输出如下:
全局环境下的命令输出
birolakanesen@Birols-MacBook-Pro ~ % python --version Python 3.9.6 birolakanesen@Birols-MacBook-Pro ~ % which python python: aliased to /usr/bin/python3 birolakanesen@Birols-MacBook-Pro ~ % pyenv versions system 3.10.13 * 3.11.7 (set by /Users/birolakanesen/.pyenv/version) birolakanesen@Birols-MacBook-Pro ~ % which pyenv /opt/homebrew/bin/pyenv
设置本地版本后的命令输出
birolakanesen@Birols-MacBook-Pro Projects % pyenv local 3.10 birolakanesen@Birols-MacBook-Pro Projects % python --version Python 3.9.6 birolakanesen@Birols-MacBook-Pro Projects % pyenv versions system * 3.10.13 (set by /Users/birolakanesen/Projects/.python-version) 3.11.7 birolakanesen@Birols-MacBook-Pro Projects % which python python: aliased to /usr/bin/python3
解决步骤
1. 移除Python的全局别名
当前python被别名指向系统默认的/usr/bin/python3,会优先于Pyenv的shims生效:
- 临时取消别名:
unalias python - 永久移除别名:打开你的shell配置文件(如
~/.zshrc、~/.bashrc),找到包含alias python='/usr/bin/python3'的行并删除,然后执行source ~/.zshrc(对应你的shell配置文件)重新加载。
2. 确保Pyenv正确初始化到Shell
Pyenv需要通过pyenv init将shims目录加入PATH优先级最高的位置,检查shell配置文件中是否包含以下内容:
export PYENV_ROOT="$HOME/.pyenv" command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
如果没有,将上述内容添加到配置文件末尾,然后执行source ~/.zshrc(或对应配置文件)重新加载。
3. 验证配置生效
- 执行
echo $PATH,确认$HOME/.pyenv/shims出现在PATH的最前端 - 执行
which python,应输出/Users/birolakanesen/.pyenv/shims/python - 最后执行
python --version,即可显示设置的本地Python版本3.10.13
内容的提问来源于stack exchange,提问作者Birol Akan Esen
相关产品推荐
相关产品推荐

