pyenv 目前是管理 Python 版本的最佳方案,是开发环境必备的工具之一。
下载
Ubuntu
必备环境
1 2
| $ sudo apt update $ sudo apt -y install git gcc make patch zlib1g.dev libgdbm-dev libssl-dev libsqlite3-dev libbz2-dev libreadline-dev
|
安装
1
| $ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
|
配置环境变量
1 2 3 4 5 6
| $ vim ~/.bash_profile
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
|
CentOS
必备环境
1 2
| $ sudo yum -y update $ sudo yum -y install git gcc readline readline-devel readline-static openssl openssl-devel openssl-static sqlite-devel bzip2-devel bzip2-libs
|
安装
1
| $ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
|
配置环境变量
1 2 3 4 5 6
| $ vim ~/.bash_profile
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
|
macOS
必备环境
1 2
| $ xcode-select --install $ brew install readline xz zlib
|
安装
配置环境变量
1 2 3 4 5 6 7 8 9
| $ vim ~/.bash_profile
export PYENV_ROOT="${HOME}/.pyenv" if [ -d "${PYENV_ROOT}" ]; then export PATH="${PYENV_ROOT}/bin:${PATH}" eval "$(pyenv init -)" fi CFLAGS="-I$(brew --prefix openssl)/include" \ LDFLAGS="-L$(brew --prefix openssl)/lib" \
|
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| $ pyenv install -list # 可安装版本列表
# 下载指定版本 python $ pyenv install 3.5.0 $ pyenv install -v 3.5.0
# 查看当前所用版本 $ pyenv version system (set by /home/wxnacy/.pyenv/version)
# 查看本地版本列表 $ pyenv versions * system (set by /home/wxnacy/.pyenv/version) # 系统python环境 *号代表当前环境版本 3.5.0 # 刚下载的3.5.0版本
# 设置全局为某一个环境 $ pyenv global 3.5.0
# 设置当前目录为某一个 python 版本 $ pyenv local 3.5.0
# 更新 $ pyenv update
# 卸载 $ rm -rf ~/.pyenv # 并移除环境变量即可
|
virtualenv
假如你想在 3.5.0
版本下做两个不同的项目,并且希望他们的环境互相独立,那么这个时候 virtualenv 就派上用场了,它是在 pyenv 的基础上做的更独立的虚拟环境。
创建
1 2 3 4 5 6
| $ pyenv virtualenv 3.5.0 env_350 $ pyenv versions * system (set by /home/wxnacy/.pyenv/version) 3.5.0 3.5.0/envs/env_350 env_350
|
查看环境后我们发现多了两个环境 3.5.0/envs/env_350
和 env_350
,它们指定同一个虚拟机,通常使用名称 env_350
。
进入、退出虚拟机
1 2 3
| $ pyenv activate env_350 # 使用
$ pynev deactivate # 退出
|
该命令只在当前 shell 有效,如果想永久有效,需要配合 pyenv 的 local, global
命令。