pyenv 是什么?
python 的版本切换工具
python 的 pyenv 相当于 node 的 nvm。
它可以让你:
- 安装多个 python 版本
- 在项目中指定特定版本
- 自动切换版本,不影响系统环境
- 兼容 macos / linux
它不会替你管理虚拟环境,但可以与 venv / poetry 完美结合。
安装 pyenv(macos)
使用 homebrew:
brew update brew install pyenv
配置 shell(zsh 为例)
编辑 ~/.zshrc,加入:
export pyenv_root="$home/.pyenv" export path="$pyenv_root/bin:$path" eval "$(pyenv init -)"
重新加载配置:
source ~/.zshrc
完成 🎉
安装一个 python 版本
比如安装当前最稳定的 python 3.11:
pyenv install 3.11.7
查看已安装版本:
pyenv versions
在项目中设置 python 版本(强烈推荐)
进入项目目录:
cd my-ai-project pyenv local 3.11.7
这会自动生成:
.python-version
以后进入这个目录时,会自动切换到 3.11.7,这就像 node 中的:
.nvmrc
设置全局默认 python 版本
pyenv global 3.11.7
一般不推荐,除非你已经使用 pyenv 接管全部 python。
搭配虚拟环境使用(最佳实践)
使用 venv
python3 -m venv .venv source .venv/bin/activate
使用 poetry(更现代)
poetry init poetry install
poetry 会自动读取 pyenv 的 python 版本。
pyenv 常用命令总结
| 命令 | 作用 |
|---|---|
pyenv install -l | 查看可安装的 python 版本 |
pyenv install 3.11.7 | 安装指定版本 |
pyenv versions | 查看已安装版本 |
pyenv local 3.11.7 | 设置项目 python 版本 |
pyenv global 3.11.7 | 设置全局 python 版本 |
pyenv uninstall 3.11.7 | 卸载版本 |
pyenv which python | 查看当前可用 python 路径 |
pyenv 的实现原理(简单讲)
pyenv 使用了一个非常巧妙的机制:
shims(垫片)机制
它在你的 path 前面放置一个目录:
~/.pyenv/shims
里面放置 python, pip 等可执行文件的“代理”,
当你调用 python 时:
- 先查 .python-version
- 找出对应 python 版本
- 调用真实 python 而不是系统 python
这和 nvm 的原理几乎一样。
pyenv + poetry + pipx:最强组合
你可以这样搭配:
| 工具 | 作用 |
|---|---|
| pyenv | 管理 python 版本(像 nvm) |
| poetry | 管理项目依赖 & 虚拟环境(像 pnpm + package.json) |
| pipx | 管理全局 cli 工具安装(像 npm global install 的替代) |
这套组合可打造行业内最干净、可维护的 ai/后端开发环境。
到此这篇关于python版本切换工具pyenv的安装及用法的文章就介绍到这了,更多相关python版本切换工具pyenv内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论