一篇搞定!Python多版本管理,看这篇就够了
在Python开发中,你是否遇到过这样的场景:项目A需要Python 3.7,项目B必须用3.10,而系统自带的却是3.9?想尝鲜新特性又怕搞坏环境?别慌,今天带你彻底搞定Python多版本管理。

为什么需要多版本管理?
Python版本迭代很快,3.6、3.7、3.8……直到现在的3.12。不同项目依赖的版本可能完全不同:
-
老项目维护:只能用某个特定版本
-
新项目开发:想用最新特性
-
学习对比:想测试不同版本下的行为
如果直接在系统里安装多个Python,然后手动改PATH,不仅麻烦,还容易出错。这时就需要多版本管理工具来拯救你了。
主流工具横向对比
| 工具 | 特点 | 最佳适用场景 |
|---|---|---|
| pyenv | 轻量、专注、简单 | 日常开发,只需切换Python版本 |
| conda | 功能强大,跨语言 | 数据科学、机器学习,需要管理复杂依赖 |
| asdf | 统一管理多语言 | 同时使用Python、Node.js、Java等多种语言 |
对于大多数开发者,pyenv + venv 是最清爽的组合。
pyenv 核心实战(Windows/macOS/Linux)
安装
macOS:
bash
brew install pyenv
Linux:
bash
curl https://pyenv.run | bash
Windows:使用 pyenv-win
powershell
# 管理员身份运行PowerShell Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
安装后记得按提示将初始化命令加入shell配置文件(~/.bashrc, ~/.zshrc等)。
常用命令
bash
# 查看可安装的版本 pyenv install --list # 安装特定版本(如3.11.4) pyenv install 3.11.4 # 查看已安装的版本 pyenv versions # 全局切换(不推荐,会影响所有终端) pyenv global 3.11.4 # 项目级切换(最常用) cd my_project pyenv local 3.10.9 # 会在目录生成.python-version文件 # 临时切换(仅当前终端会话) pyenv shell 3.8.13 # 查看当前使用的Python路径 pyenv which python
项目级切换原理
当你执行 pyenv local 3.10.9 后,项目根目录会出现一个 .python-version 文件,里面只有一行 3.10.9。之后每次进入该目录,pyenv 会自动切换到对应版本。配合IDE,简直不要太爽。
黄金搭档:虚拟环境
pyenv 只负责切换Python版本,但项目依赖包(Django、requests等)隔离还需要虚拟环境。最轻量的方案是使用Python自带的 venv。
bash
cd my_project pyenv local 3.11.4 # 指定版本 python -m venv .venv # 创建虚拟环境 source .venv/bin/activate # macOS/Linux激活 # 或 .venv\Scripts\activate # Windows激活 pip install -r requirements.txt
激活后,pip install 的包只会装到这个项目的 .venv 中,不影响全局。
pyenv 还有个官方插件 pyenv-virtualenv,可以把版本和虚拟环境绑定得更紧密:
bash
pyenv virtualenv 3.11.4 myproject-env pyenv local myproject-env # 直接切换到虚拟环境
在 PyCharm 中无缝使用
如果你用PyCharm,配置 pyenv 的Python版本非常方便:
-
打开
Settings→Project→Python Interpreter -
点击齿轮⚙️ →
Add→Local Interpreter→Existing environment -
找到
pyenv安装的Python路径:-
macOS/Linux:
~/.pyenv/versions/3.10.9/bin/python -
Windows:
%USERPROFILE%\.pyenv\pyenv-win\versions\3.10.9\python.exe
-
更智能的是,安装 Pyenv Integration 插件后,PyCharm 能自动识别项目根目录的 .python-version 文件,直接推荐对应的解释器。
其他备选方案简介
Conda(适合数据科学)
安装 Miniconda 后,用一条命令就能创建独立环境:
bash
conda create -n myenv python=3.9 conda activate myenv
Conda 不仅能管Python,还能管理CUDA、MKL等非Python库,是机器学习的首选。
asdf(多语言统一管理)
如果你还要管理Node.js、Java、Go等,asdf 会很有吸引力:
bash
asdf plugin add python asdf plugin add nodejs asdf install python 3.11.4 asdf install nodejs 18.17.0 asdf global python 3.11.4 nodejs 18.17.0
所有语言用同一套命令,爽到飞起。
总结一条最佳实践
-
日常开发:
pyenv+venv,清爽无负担 -
数据科学:
conda,省心省力 -
多语言全栈:
asdf,一统天下
更多推荐



所有评论(0)