前言

python开发者有时会遇到不同版本的项目,这时就需要有切换python版本的功能。pyenv就是python版本管理器,下面我们就看一下pyenv在Mac上的安装过程。

安装pyenv

brew install pyenv

接下来在 ~/.bashrc 或 ~/.zshrc 中添加如下内容:

# Start pyenv Config
export PYENV_ROOT=/users/<username>/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"
# End pyenv Config

pyenv命令

Some useful pyenv commands are:
commands 列出所有pyenv可用的命令
local 设置或显示本地应用程序特定的Python版本
global 设置或显示系统全局的Python版本
shell 设置或显示shell外壳的Python版本
install 使用python-build安装指定Python版本
uninstall 卸载已经安装的Python
rehash 刷新 pyenv shims (安装之后运行这个)
version 查看当前使用的版本
versions 列出已经安装的Python版本,当前激活版本用*号标注
which 显示的完整路径的可执行文件
whence 列出包含给定的可执行所有的Python版本
See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv/blob/master/COMMANDS.md

安装python版本

pyenv install 3.6.3

当我们输入上面的命令,会发现下载安装包的速度非常慢,这时我们就需要用到PYENV_ROOT这个路径变量。
我们先自行下载3.6.3的安装包,然后将安装包放入PYENV_ROOT路径下的cache文件夹中(如下图所示),最后再次输入安装,就会自动跳过下载步骤,进入安装环节。

图1
图1

安装完成后,输入如下命令:

# 用于刷新 pyenv shims
pyenv rehash

切换版本

优先级关系:shell——local——global

# 设置系统全局的Python版本(不建议直接操作,可能会影响Mac环境)
pyenv global 3.6.3
# 设置本地应用程序的Python版本
pyenv local 3.6.3
# 设置shell的Python版本
pyenv shell 3.6.3

virtualenv创建纯净虚拟环境

virtualenv可以创建出一个全新的独立虚拟环境,这样系统python环境就不会受到任何的影响。

安装pyenv-virtualenv

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

接下来在 ~/.bashrc 或 ~/.zshrc 中添加如下内容:

eval "$(pyenv virtualenv-init -)"

创建虚拟环境

pyenv virtualenv 3.6.3 virtual_env363

上述代码会创建一个名为virtual_env363的python虚拟环境,python的版本是3.6.3
在创建虚拟环境时,我们可以加上参数 --no-site-packages,这个参数不会复制系统python环境中的所有第三方包。
我们可以通过 pyenv versions 来查看本机所有的python环境

使用虚拟环境

pyenv activate virtual_env363

停用虚拟环境

pyenv deactivate

卸载虚拟环境

pyenv uninstall virtual_env363

或者

rm -rf ~/.pyenv/versions/virtual_env363/

Anaconda科学计算包

Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。
使用上述步骤安装Anaconda包并切换到Anaconda包环境

创建虚拟环境

我们可以使用 conda 命令来创建名为test_env的虚拟环境,python版本为python3.6.3

conda create -n test_env python=3.6.3

使用虚拟环境

source activate test_env

停用虚拟环境

source deactivate

卸载虚拟环境

conda remove -n test_env --all

安装第三方的依赖包

conda install package_name

和pip一样,国内安装依赖包时会很慢,需要设置镜像资源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

参考文献

Mac多Python版本共存,多个独立Python开发环境切换。
Mac OS X 下 Python 2.7 & 3.4 共存
Python多版本切换工具-Pyenv\virtualenv及Anaconda科学计算环境的配置
python多版本和虚拟环境(pyenv+conda or virtualenv)
Pyenv 使用笔记
Anaconda 镜像使用帮助
跳一跳Android-和-iOS-操作步骤
python虚拟环境–virtualenv
virtualenv-廖雪峰的官方网站