目录

pyenv 与 virtualenv 安装,Python 版本管理使用教程

pyenv是Python版本管理工具。 pyenv可以

  • 安装多个版本的 Python
  • 改变全局的 Python 版本
  • 设置目录级别的 Python 版本
  • 创建和管理 virtual python environments

所有的设置都是用户级别的操作,不需要sudo命令。

pyenv的美好之处在于,它并没有使用将不同的PATH植入不同的shell这种高耦合的工作方式,而是简单地在PATH的最前面插入了一个垫片路径(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有对Python可执行文件的查找都会首先被这个垫片路径(shims)路径截获,从而使后方的系统路径失效。

开始

不同系统请参考Common build problems,安装必须的工具。

安装

pyenv 提供了自动安装的工具,需要系统已经安装git,执行命令安装即可:

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

使用

pyenv

查看本机安装 Python 版本 使用如下命令查看本机安装版本

pyenv versions

星号表示当前正在使用的 Python 版本。使用 python -V 确认版本。

查看可安装 Python 版本 使用如下命令查看可安装版本

pyenv install -l

Python 版本切换

pyenv shell 2.7.3 # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。
pyenv global 2.7.3  # 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
pyenv local 2.7.3 # 设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。

pyenv shell --unset # 取消设置,恢复默认
pyenv global --unset # 取消设置,恢复默认
pyenv local --unset # 取消设置,恢复默认

优先级 shell > local > global

pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。

刷新pyenv垫片路径

pyenv rehash  # 创建垫片路径(为所有已安装的可执行文件创建 shims,如:~/.pyenv/versions/*/bin/*,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令)

pyenv-virtualenv

使用自动安装 pyenv 后,它会自动安装部分插件,通过 pyenv-virtualenv 插件可以很好的和 virtualenv

创建虚拟环境

pyenv virtualenv 2.7.10 env-2.7.10 # pyenv virtualenv 基于2.7.10版本 创建名称为env-2.7.10的虚拟环境

列出当前虚拟环境

pyenv virtualenvs

进入、退出虚拟环境

pyenv activate env-name  # 进入虚拟环境
pyenv deactivate #退出虚拟环境,回到系统环境

删除虚拟环境

pyenv uninstall my-virtual-env
rm -rf ~/.pyenv/versions/my-virtual-env  # 或者删除其真实目录