在macOS下的Python开发-环境篇

pyenv 是一个简单的Python 版本管理器,让我们可以在系统里安装多个不同版本的 Python。它遵从了 UNIX 传统:只做一件事并且尽量做到最好。

pyenv 允许我们更改全局的 Python 版本,以支持每个项目使用不同的 Python 版本,也允许使用环境变量覆盖 Python 版本。但是,与 pythonbrew(已经被废弃) 和 pythonz(从 pythonbrew fork 而来) 不同的是,它不依赖于 Python 本身,仅仅使用了 Shell 脚本;它也不需要加载到 Shell 中,而是使用 shim 方式将目录添加到 $PATH 中;最后,它并不管理 Python 虚拟环境,可以使用 virtualenv 或者 pyenv-virtualenv 来自动化管理。

1
2
3
4
5
6
~$ brew install pyenv pyenv-virtualenv
~$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
~$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
~$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
~$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
~$ exec "$SHELL"

使用 Homebrew 安装好 pyenvpyenv-virtualenv ,接着设置环境变量和自动完成脚本。因为我使用的是 oh-my-zsh,所以是将环境变量和自动完成写入到 .zshrc 配置文件中。其他不同的 Shell 根据情况写入到不同的的配置文件。

1
2
3
4
5
6
7
8
9
10
~$ pyenv versions # 查看所有版本,带星号表示当前版本
* system
~$ pyenv install 2.7.11 # 安装 Python 2.7.11
~$ pyenv versions
* system
2.7.11
~$ pyenv activate 2.7.11 # 激活 Python 2.7.11
~$ pyenv versions # 可以看到当前版本已经改变
system
* 2.7.11

安装配置完成之后,我们可以安装不同版本的 Python 解释器了,这里是 2.7.11。使用 versions 参数列出了系统中已经安装的 Python 解释器,使用 “activate 参数 + 版本号” 可以激活特定版本的解释器。