功能

  • python 版本管理工具
  • 通过 virtualenv 实现 虚拟环境管理
  • python 版本切换

    • 通过 pyenv local 实现项目关联 python 版本

      • 注:

        • 离开项目目录,自动切换成全局 python(pyenv global 设定)
    • 通过 pyenv global 实现全局 python 版本切换
    • 通过 pyenv shell 实现给定 shell(如 bash, zsh) 内部设置 python 版本

CheatSheet

临时启用 python 版本

  1. 启用: pyenv shell 2.7
  2. 退出: pyenv shell –unset

    • 注意:验证无效

安装 pyenv 命令本身

pyenv 命令安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 1) 运行命令
curl https://pyenv.run | bash

# 2) 修改配置
# 放到 .profile, source .bashrc 之前
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

# .bashrc 修改,或放到 .profile 最后
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"

# bash completion
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

pyenv-virtualenv 子命令安装

参考:

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

依赖安装

  • 参考

  • 安装依赖包

    1
    2
    3
    4
    
      # Ubuntu
      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
    • 编译安装 python 需要这些依赖包

virtualenv(python 版本) 安装和管理

安装 python 版本

  • pyenv install <python-version>
  • eg: pyenv install 3.8.10

支持的 python 版本查看

  • pyenv install -l

卸载 python

  • pyenv uninstall <python-version>

virtualenv 使用

创建

  • pyenv virtualenv <python-version> <virtualenv-name>
  • eg: pyenv virtualenv 3.8.10 py38

激活

  • pyenv activate <virtualenv-name>
  • eg:

    • pyenv activate 3.8.10
    • pyenv activate py38

离开

  • pyenv deactivate

删除

  • pyenv virtualenv-delete <virtualenv-name>

列举

  • pyenv virtualenvs

直接切换 python 版本

  • 不使用 virtualenv,直接切换 安装的 python-version

local

  • 作用

    • 本地项目切换
  • 切换

    • pyenv local <python-version> <python-version-1> ...
    • eg: pyenv local 3.8.10 2.7.6
  • 查看现在版本

    • pyenv local
  • 原理

    • 存储版本号在 project_root/.python-version

global

  • 作用

    • 全局切换
  • 切换

    • pyenv global <python-version> <python-version-1> …
  • 查看现在版本

    • pyenv global
  • 原理

    • 存放版本信息在 pyenv 根目录下文件 ~/.pyenv/version

shell

  • 作用

    • 给定 shell 内部切换 python 版本
    • 注意

      • 会覆盖 pyenv global 和 pyenv local 设定
  • 切换

    • pyenv shell <python-version> …
  • 查看

    • pyenv shell