macOS 多版本 Python 管理|pyenv + Poetry 环境搭建与常见坑

你会遇到的问题

同一台 Mac 上做多个项目时,经常出现“项目 A 要 Python 3.10、项目 B 要 Python 3.12”的情况。如果直接用系统自带 Python 或随手装多个解释器,很容易变成路径混乱、依赖互相污染、换电脑难复现。本文用 pyenv 解决多版本 Python 的安装与切换,用 Poetry 解决依赖与虚拟环境的可重复。

准备:安装 Homebrew 与 pyenv

Homebrew 官方说明(可点击):https://brew.sh/

安装 pyenv(示例):

brew install pyenv

然后重开终端,让新安装的软件可被识别。

配置 pyenv:让终端自动生效

pyenv 需要在终端启动时被初始化。做法是把初始化配置写进你的 shell 配置文件(zsh 通常是 zshrc)。这里不展开具体编辑器,核心是:确保终端启动后能识别 pyenv,并且 pyenv 的 shims 路径优先于系统路径。

验证是否可用:

pyenv --version

参考链接(可点击):https://github.com/pyenv/pyenv

安装与锁定 Python 版本

安装一个具体版本(示例):

pyenv install 3.12.2

设置全局默认版本:

pyenv global 3.12.2

进入项目目录后,用本地版本锁定该项目(会生成 .python-version):

cd /path/to/your-project

pyenv local 3.12.2

检查当前生效解释器:

python -V

which python

安装 Poetry:管理依赖与虚拟环境

Poetry 文档(可点击):https://python-poetry.org/

若你已具备可用的 pipx,可用它安装 Poetry(示例):

brew install pipx

pipx install poetry

验证:

poetry --version

建议设置:把虚拟环境放进项目目录,方便 VS Code 识别:

poetry config virtualenvs.in-project true

让 Poetry 使用正确的 Python

在项目目录中先锁定 Python 版本,然后获取解释器路径:

pyenv which python

把输出的完整路径复制出来,交给 Poetry(示例路径):

poetry env use /Users/你的用户名/.pyenv/versions/3.12.2/bin/python

初始化并安装依赖(示例):

poetry init

poetry add requests

poetry install

运行命令:

poetry run python -V

VS Code 选择解释器的小技巧

1) 如果你把虚拟环境放在项目目录,一般会看到 .venv 文件夹,VS Code 选择它即可。

2) 若出现“能运行但提示找不到依赖”,优先确认 VS Code 选的解释器是否与你当前终端一致。

常见问题排查

问题 1:切换版本后仍是旧版本

多半是终端未加载 pyenv 初始化配置。重开终端,再检查 which python 是否指向 pyenv 的 shims 或项目环境。

问题 2:Poetry 环境不对

用 poetry env info 查看当前环境,必要时重新执行 poetry env use 并 poetry install。

小结

用 pyenv 管多版本,用 Poetry 管依赖与虚拟环境,再配合项目目录锁定版本,你就能把 macOS 上的 Python 开发环境变得稳定、清晰且可复现。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

暂无评论,快来抢沙发吧~

操作成功