什么是pyenv?嘿,先说结论:pyenv 就是一个帮你在各种 Python 版本之间随意切换的小工具。它是个纯 Shell 脚本,不依赖系统 Python,安装后像个隐形翅膀,让你轻轻松松管理全局、项目或临时的 Python 版本。想象一下,不用麻烦地卸载系统自带的 Python、也不用手动编译、也不用记一堆软链接,这就是 pyenv 的魔力。
它能帮你做什么?
- • 全局版本切换:一条命令就把你喜欢的那个 Python 版本设为默认,系统级别有效。
- • 本地项目隔离:在项目根目录放个
.python-version,一进目录就自动切换,哎呦,爽。 - • 临时环境需求:想要玩新特性?
pyenv shell 3.x.x 临时生效,不想要就关壳就完事。 - • 同时装多个版本:2.x、3.x、PyPy……统统装得下,免去“这次要哪个环境”纠结。
- • 环境变量覆盖:
PYENV_VERSION 一行设定,服务器 CI 也能无脑跑。
解决了哪些痛点?
- 1. “系统 Python 删了会翻车”:pyenv 完全独立,系统自带的啥也不动。
- 2. “多个项目版本冲突”:省掉虚拟机、Docker 重型方案,根目录一文件搞定版本。
- 3. “服务器环境不一致”:
pyenv install、pyenv local,dev、prod 完美对齐。 - 4. “测试不同版本太麻烦”:装好后只要
pyenv shell,随便切换来跑测试。
优缺点对照表
| |
| 纯 Shell 脚本,无需依赖 Python 启动 | 初次编译安装慢,尤其 macOS 或老机器上会稍微卡顿 |
| 不管理虚拟环境,要配合 pyenv-virtualenv 或 venv |
| 支持 CPython、PyPy、Anaconda 等 | 学习曲线较浅但还是得读文档,别怕多按几次 pyenv help |
| Windows 原生支持有限,要用 WSL 或社区版 |
快速上手 & 总结
- 1. 安装:
# macOS(Homebrew)brew install pyenv# Linux/WSLcurl https://pyenv.run | bash
- • 在
~/.bashrc、~/.zshrc 里加export PYENV_ROOT="$HOME/.pyenv"export PATH="$PYENV_ROOT/bin:$PATH"eval"$(pyenv init --path)"eval"$(pyenv init -)"
- 3. 使用:
pyenv install 3.10.4# 安装pyenv global 3.10.4# 设置全局cd myproject && pyenv local3.9.12# 针对项目pyenv shell 2.7.18# 临时切换
总体来说,pyenv 就像是你的 Python 万能钥匙,一把解决版本混乱、环境切换烦恼的好助手。要是你还在折腾系统自带、孤立虚拟环境,赶紧试试它,省下来的时间都能写更多代码了。
项目地址:https://github.com/pyenv/pyenv