Configure pyenv#

注: 本文的所有内容均有自动化脚本实现自动安装, 请前往 Configure pyenv Automatically 查看.

Overview#

在同一台电脑上同时拥有多个 Python 版本是专业 Python 开发者的刚需. Homebrew 里的 Python 发行版的选择余地非常小, 建议不要用 Homebrew 来管理 Python.

社区里最主流的工具是 pyenv, 它类似于 rbenv (ruby env), 能通过用一个 shim (插销) 修改你的 $PATH, 使得你打 python 这个命令时会先到 pyenv 的 shell script 中去找, 这个 shell script 里实现了具体的寻找真正的 Python 解释器的逻辑.

pyenv 这个工具不需要 sudo, 所有的安装都在 ${HOME}/.pyenv 下. 删除掉这个目录就什么都删除了, 非常干净.

Install Pyenv#

官方文档 Install pyenv 中有一个脚本可以一键安装. 它本质是把一个 shell script 脚本保存到了 https://pyenv.run, 然后用 bash 执行. 这个方法跟 homebrew 一样, 非常 hacky.

curl https://pyenv.run | bash

安装好之后你要给你的 .zshrc (或 .bashrc, 取决于你用哪个 shell) 中添加如下内容. 这些内容的本质是修改 Path, 启动 SHIM 插销机制.

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

Important Commands#

  • List all available version: pyenv install -l.

  • Install specified version: pyenv install <version>.

  • Made multiple python versions available in global / local / shell: pyenv global <version1> <version2> ..., pyenv local <version1> <version2> ..., pyenv shell <version1> <version2> ....

  • Check current version: pyenv version.

  • Check all installed version: pyenv versions.

Install Build Dependencies#

使用 Pyenv 安装 Python 的本质是从 Python 的 C 源码构建. 构建 C 源码是需要一些编译器等依赖工具的. Suggested build environment 这篇文档介绍了在不同的操作系统上 build Python 所需的依赖. 你需要手动执行这些命令安装好依赖之后才能真正安装具体的 Python 版本.

Install Specific Python Version#

Note

All python versions will be installed in: ~/.pyenv/versions.

pyenv install 3.8.13
pyenv install 3.9.12
pyenv install 3.10.10
pyenv install 3.11.6

Configure pyenv Automatically#

python3 cli.py install_pyenv

Reference#