Homebrew环境Python

备注

有关Python环境工具之间关系,见 Python环境工具

pyenv

pyenv 可以管理主机上的多个Python版本,方便构建不同的开发、测试、生产环境。管理多版本最好使用它来完成:

安装 pyenv
brew install pyenv
  • 使用 pyenv 安装指定Python版本:

pyenv 安装指定Python版本(这里假设我安装当前最新的稳定release版本3.12.4)
pyenv install 3.12.4

我这里遇到一个WARNING信息:

pyenv 安装指定Python版本输出信息
python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
Downloading Python-3.12.4.tar.xz...
-> https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tar.xz
Installing Python-3.12.4...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/huatai/.pyenv/versions/3.12.4/lib/python3.12/lzma.py", line 27, in <module>
    from _lzma import *
ModuleNotFoundError: No module named '_lzma'
WARNING: The Python lzma extension was not compiled. Missing the lzma lib?
Installed Python-3.12.4 to /Users/huatai/.pyenv/versions/3.12.4

  • 可以使用 pyenv 安装多个Python版本,例如安装一个旧版本:

pyenv 安装指定Python 2版本
pyenv install 2.7.18
  • 此时检查系统中安装的Python版本:

检查系统中通过 pyenv 安装的 Python 版本
pyenv versions

注意,此时输出信息中显示 system 是一个 version 文件,但是实际上这个文件还不存在,也就是还没有全局设置指定版本

检查系统中通过 pyenv 安装的 Python 版本
* system (set by /Users/huatai/.pyenv/version)
  2.7.18
  3.12.4
% cat /Users/huatai/.pyenv/version
cat: /Users/huatai/.pyenv/version: No such file or directory
  • 然后使用如下命令为自己指定一个全局默认版本:

pyenv 指定默认Python版本
pyenv global 3.12.4

此时就会看到 pyenv versions 输出变化了:

版本切换到 3.12.4
  system
  2.7.18
* 3.12.4 (set by /Users/huatai/.pyenv/version)

此时 ~/.pyenv/version 内容就是 3.12.4

参考