pyenv 是 Python 版本管理工具。 pyenv
可以改变全局的 Python
版本,在系统中安装多个版本的 Python
, 设置目录级别的 Python
版本,还能创建和管理 virtual python environments
。所有的设置都是用户级别的操作,不需要 sudo
命令。
安装之前
不同系统请参考 Common build problems,安装必须的工具。
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libedit-dev
pyenv 安装
根据官网的 安装说明 或者 自动安装 。如果使用 Mac 直接使用 Homebrew。安装成功后记得在 .bashrc
或者 .bash_profile
中添加三行来开启自动补全。
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
根据自己的环境配置。
官方提供了一键安装脚本,可以直接下载运行(mac / windows
)
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
如果你没有科学,可以使用加速链接进行下载
curl -L https://ghproxy.com/https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
安装完成后发现提示以下警告
因此按照警告加一下环境变量
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
也可以使用以下命令
执行安装后提供了如下工具:
pyenv-virtualenv
: pyenv
的插件可以用来管理 vierual environments
pyenv-update
: 用来更新 pyenv
的插件
pyenv-doctor
: 验证 pyenv
和依赖是否安装的插件
pyenv-which-ext
: 用来寻找相同命令的插件
pyenv
会从源代码编译 Python
,所以需要安装必须的编译工具,安装 build
工具:
Debian/Ubuntu/Linux Mint:
sudo 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 python-openssl
Fedora/CentOS/RHEL:
sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite \
sqlite-devel openssl-devel xz xz-devel libffi-devel
MacOS:
brew install openssl readline sqlite3 xz zlib
pyenv 常用命令
使用 pyenv commands
显示所有可用命令
python 安装与卸载
就如上文所说,pyenv
从源码安装 Python, 每一个安装的版本都会在 pyenv
根目录的 versions
目录下。
pyenv install 2.7.3 # 安装 python
安装后可以检视:
从本机卸载对应版本的 Python 也特别简单:
pyenv uninstall 2.7.3 # 卸载 python
或者直接删除掉 ~/.pyenv/versions/2.7.3
对应的目录也可以。
rm -rf ~/.pyenv/versions/2.7.3
查看本机安装 Python 版本
使用如下命令查看本机安装版本
星号表示当前正在使用的 Python 版本。使用 python -V
确认版本。
查看可安装 Python 版本
使用如下命令查看可安装版本
Python 切换
用这些命令可以切换全局或者项目中的 Python 版本:
pyenv global 2.7.3 # 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
pyenv local 2.7.3 # 设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。
需同在寻找 python 的时候优先级
pyenv 会从当前目录开始向上逐级查找 .python-version
文件,直到根目录为止。若找不到,就用 global 版本。
pyenv shell 2.7.3 # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。`--unset` 参数可以用于取消当前 shell 设定的版本。
pyenv shell --unset
pyenv rehash # 创建垫片路径(为所有已安装的可执行文件创建 shims,如:~/.pyenv/versions/*/bin/*,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令)