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

cf3a8dcaa28a43a9acf3f03c1b42238f~tplv-73owjymdk6-jj-mark-v1_0_0_0_0_5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5pm66amt5pyq5p2l5o6M6Zeo5Lq6_q75

为什么需要多版本管理?

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版本非常方便:

  1. 打开 Settings → Project → Python Interpreter

  2. 点击齿轮⚙️ → Add → Local Interpreter → Existing environment

  3. 找到 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,一统天下

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐