一篇搞定!Python多版本管理,看这篇就够了

118 阅读4分钟

别再让混乱的Python版本毁掉你的开发体验

image.png 在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版本非常方便:

  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,一统天下

无论选哪个,都要记住:

不要污染系统Python —— 永远不要在系统Python环境里直接用 pip install

学会多版本管理,你的Python之路会顺畅十倍。赶快动手试试吧!

如果觉得有用,欢迎点赞、在看、转发给更多需要的朋友~


你的Python版本管理遇到过头疼的问题吗?  欢迎留言分享你的经历或问题,我们一起探讨解决方案!

关于作者:boonya


资深开发工程师,高级架构师。熟悉GIS、车联网、物联网、供应链、林业、互联网家居、游戏、商旅服务。你可以在微信公众号:智驭未来掌门人 找到我!

公众号.jpg