最近公司在做python的项目,不同项目代码使用的python版本不一样,了解到pyenv可以根据项目目录进行python版本的关系,遂百度了pyenv在mac的安装方法
然而发现事情并没有这么简单!!!
当我把pyenv安装后,pyenv install 3.5.3,安装python,然后尝试着在指定项目目录下切换python的版本为3.5.3,我懵了,pyenv versions显示版本是3.5.3,但是python -V显示的版本还是本机自带python版本2.7.10!!
然后我检查.zshrc文件的环境变量配置,没问题啊,都是安装教程博客里设置的,pyenv命令有,但是没生效,所以初步定位问题为环境变量配置
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
后来几经周折,然后注意到我安装的pyenv的版本,执行脚本的目录是/shims而不是/bin,然后把export PATH="$PYENV_ROOT/bin:$PATH"改成export PATH="$PYENV_ROOT/shims:$PATH",问题竟然就解决了。分析原因,有可能是我安装pyenv的时候,没有创建bin的软连接指向shims,所以环境变量没生效
注:因为我的电脑没有给我当前的用户root权限,所以针对一些底层的操作和命令的执行,需要使用sudo进行鉴权,同时在配置pyenv的环境变量的时候,必须保证当前的配置是最后一个,不允许有其他配置在它后面