前言
面对多个 Python 开发项目时,需要针对不同的项目创建相应的开发环境。通常情况下,使用 virtualenv 创建一个虚拟的独立 Python 环境,但是 virtualenv 创建的环境相对分散不便于管理。这里推荐使用 virtualenvwrapper 来创建集中的便于管理的 Python 环境,同时可以结合 pyenv 为不同的项目选定不同的 Python 版本。
pyenv
安装
Linux
使用下列命令自动安装 pyenv:
1 | $ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash |
Mac OS X
使用 homebrew 直接安装:
1 | $ brew update |
配置
在.bashrc(或.zshrc)中添加下列内容:
1 | export PYENV_ROOT="$HOME/.pyenv" |
然后重启 shell,使配置生效。
1 | $ exec "$SHELL" |
安装 Python 时依赖环境
安装 Python 时需要提前安装好所需的依赖环境。
- Ubuntu/Debian:
1
2
3sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev - Fedora/CentOS/RHEL:Alternative of openssl-devel:
1
2sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
openssl-devel xz xz-devel libffi-devel1
sudo yum install compat-openssl10-devel --allowerasing
- openSUSE
1
zypper in zlib-devel bzip2 libbz2-devel readline-devel sqlite3 sqlite3-devel libopenssl-devel xz xz-devel
- macOS:
1
brew install readline xz
使用
1. 查看所有 Python 版本
1 | $ pyenv versions |
执行命令将打印出安装的所有 Python 版本,*
表示当前使用的 Python 版本。
2. 查询所有可安装的 Python 版本
1 | $ pyenv install -l |
3. 安装与卸载
1 | $ pyenv install 2.7.14 |
安装 Python 2.7.14 版本。
1 | $ pyenv uninstall 2.7.14 |
卸载 Python 2.7.14 版本
1 | $ pyenv rehash |
创建垫片路径(为所有已安装的可执行文件创建 shims,如:~/.pyenv/versions/*/bin/*,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令)。
4. 设置 Python 版本
1 | $ pyenv shell 2.7.14 # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。 |
注意: shell > local > global。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。
Ps: 因为系统本身常常会依赖自带的 python 版本,所以尽量不要修改 global。
5. 取消 shell 或 local python 版本
1 | $ pyenv shell --unset |
使用镜像加速下载
通过下列脚本使用国内搜狐的镜像快速安装各版本 Python:
1 | v=3.6.3;wget https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -P $(pyenv root)/cache/;pyenv install $v |
注意:v 为 Python 版本号,请根据需要自行更改。
搜狐镜像貌似关闭了,可以自行下载指定的 Python 版本安装包放入,$(pyenv root)/cache/
文件夹下,然后执行 pyenv install xxx(版本号)
安装相应的 python 版本,安装时会使用缓存安装包。
pyenv-virtualenvwrapper
安装
Linux
通过下列命令安装 pyenv-virtualenvwrapper:
1 | $ git clone https://github.com/pyenv/pyenv-virtualenvwrapper.git $(pyenv root)/plugins/pyenv-virtualenvwrapper |
Mac OS X
Mac OS X 下可选择使用使用 Homebrew 来安装:
1 | $ brew install pyenv-virtualenvwrapper |
激活
安装完成后使用下列命令激活 pyenv-virtualenvwrapper:
1 | $ pyenv virtualenvwrapper_lazy |
配置
在.bashrc(或.zshrc)中添加下列内容:
1 | export PYENV_VIRTUALENVWRAPPER_PREFER_PYVENV="true" |
然后重启 shell,使配置生效。
1 | $ exec "$SHELL" |
使用
1 | $ pyenv shell 3.6.3 # 设置当前 shell python 版本为 3.6.3 |
virtualenvwrapper 使用方法
workon
: 打印所有的虚拟环境;mkvirtualenv xxx
: 创建 xxx 虚拟环境;workon xxx
: 使用 xxx 虚拟环境;deactivate
: 退出 xxx 虚拟环境;rmvirtualenv xxx
: 删除 xxx 虚拟环境。