安装
$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
安装后配置
安装完成后,pyenv命令还没有加进系统的环境变量,需要将如下内容加到~/.bash_profile
中,然后执行source ~/.bash_profile
。
export PATH=$HOME/.pyenv/bin:$PATH
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
完成以上操作后,pyenv就安装完成了。
$ pyenv -v
pyenv 1.2.2
update
通过pyenv update
命令,可以更新pyenv的所有内容。
查看所有可安装的Python版本
$ pyenv install --list |more
Available versions:
2.1.3
2.2.3
2.3.7
2.4
2.4.1
...
安装指定版本的Python环境
$ pyenv install 3.6.0
查看当前系统中所有可用的Python版本
$ pyenv versions
* system
3.4.3
3.5.0b1
3.6.4
切换Python版本
pyenv可以从三个维度来管理Python环境,简称为:当前系统、当前目录、当前shell。这三个维度的优先级从左到右依次升高,即当前系统的优先级最低、当前shell的优先级最高。
如果想修改系统全局的Python环境,可以采用pyenv global PYTHON_VERSION
命令。该命令执行后会在$(pyenv root)
目录(默认为~/.pyenv
)中创建一个名为version的文件(如果该文件已存在,则修改该文件的内容),里面记录着系统全局的Python版本号。
$ pyenv global 2.7.13
$ cat ~/.pyenv/version
2.7.13
$ pyenv version
2.7.13
$ pyenv global 3.6.0
$ cat ~/.pyenv/version
3.6.0
$ pyenv version
3.6.0
通常情况下,对于特定的项目,我们可能需要切换不同的Python环境,这个时候就可以通过pyenv local PYTHON_VERSION
命令来修改当前目录的Python环境。命令执行后,会在当前目录中生成一个.python-version
文件(如果该文件已存在,则修改该文件的内容),里面记录着当前目录使用的Python版本号。
$ cat ~/.pyenv/version
2.7.13
$ pyenv local 3.6.0
$ cat .python-version
3.6.0
$ cat ~/.pyenv/version
2.7.13
$ pyenv version
3.6.0
$ pip -V
pip 9.0.1
可以看出,当前目录中的.python-version
配置优先于系统全局的~/.pyenv/version
配置。
另外一种情况,通过执行pyenv shell PYTHON_VERSION
命令,可以修改当前shell的Python环境。执行该命令后,会在当前shell session(Terminal窗口)中创建一个名为PYENV_VERSION
的环境变量,然后在当前shell的任意目录中都会采用该环境变量设定的Python版本。此时,当前系统和当前目录中设定的Python版本均会被忽略。
$ echo $PYENV_VERSION
$ pyenv shell 3.6.0
$ echo $PYENV_VERSION
3.6.0
$ cat .python-version
2.7.13
$ pyenv version
3.6.0
顾名思义,当前shell的Python环境仅在当前shell中生效,重新打开一个新的shell后,该环境也就失效了。如果想在当前shell中取消shell级别的Python环境,采用unset命令重置PYENV_VERSION
环境变量即可。
$ cat .python-version
2.7.13
$ pyenv version
3.6.0
$ unset PYENV_VERSION
$ pyenv version
2.7.13
Pycharm 如何切换 Pyenv 管理的安装包
当你使用pyenv切换了python版本时.Pycharm不会自动切换到对应的python. 需要自己手动的添加对应版本的绝对路径到Pycharm.
在Add Local 中添加pyenv管理的绝对路径.