文章目录

Python 环境配置:如何安装与管理多个 Python 版本

发布于 2026-04-04 15:32:00 · 浏览 29 次 · 评论 0 条

Python 环境配置:如何安装与管理多个 Python 版本


为什么需要管理多个 Python 版本

在实际开发中,你可能会遇到以下场景:手头有一个老项目需要 Python 2.7 运行,而新项目要求 Python 3.11;或者某个依赖库只支持特定版本的 Python。如果把所有项目都塞进同一个 Python 环境,版本冲突会让人焦头烂额。

本文将详细介绍在不同操作系统下安装和管理多个 Python 版本的方法,帮助你搭建一个干净、灵活的 Python 开发环境。


在 Windows 上管理多个 Python 版本

使用 Python 启动器(推荐)

Windows 从 Python 3.3 开始自带 py.exe 启动器,这是管理多版本最简单的方式。安装 Python 时,务必勾选底部的 Add Python to PATH 选项。

安装不同版本的 Python

  1. 访问 Python 官网(python.org),分别下载需要的版本安装包。
  2. 运行安装程序,选择 Customize installation
  3. 勾选Add Python to PATH(这一步至关重要)。
  4. 选择安装位置:建议将不同版本安装在统一目录下,例如 C:\Python\ 目录下放置 Python310Python39Python27 等子文件夹。

安装完成后,py.exe 会自动检测系统中所有已安装的 Python 版本。

使用启动器指定版本运行

# 运行最新版本的 Python
py

# 指定主版本运行(优先使用该主版本的最新版)
py -3
py -3.10

# 指定具体版本完整号
py -3.10.8
py -3.9.13

# 运行脚本时指定版本
py -3.10 myscript.py
py -3.9 -m pip install requests

查看所有已安装版本

py --list

输出会显示类似这样的结果,显示系统中所有可用的 Python 版本及其优先级:

Installed Pythons found by py Launcher for Windows
----------------------------------------------------------------
3.10.8        C:\Python\Python310\python.exe *
3.9.13        C:\Python\Python39\python.exe
3.8.10        C:\Python\Python38\python.exe
2.7.18        C:\Python\Python27\python.exe

星号(*)表示默认版本,可以加上 -0 参数查看更详细的信息。


在 macOS 上管理多个 Python 版本

使用 Homebrew 安装

macOS 自带一个系统级的 Python(通常用于系统工具),但开发者一般会另外安装自定义版本的 Python。推荐使用 Homebrew 包管理器来管理。

安装 Homebrew(如果尚未安装)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

**使用 brew 安装 Python**

```bash
# 安装最新版的 Python 3
brew install python

# 安装指定版本的 Python(以 Python 3.9 为例)
brew install python@3.9

# 链接已安装的特定版本
brew link python@3.9 --force
```

每个通过 Homebrew 安装的 Python 都会放在 `/usr/local/Cellar/python/` 目录下,可执行文件位于 `/usr/local/bin/`。由于 Homebrew 的 bin 目录在 PATH 中优先级较高,`python` 和 `pip` 命令会自动指向通过 brew 安装的最新版本。

**查看已安装的所有 Python 版本**

```bash
ls /usr/local/Cellar/python@*/
ls /opt/homebrew/Cellar/python@*/  # Apple Silicon Mac
```

---

## 使用 pyenv 管理多版本(跨平台推荐)

`pyenv` 是一个专门用于管理多个 Python 版本的工具,支持 Linux、macOS 和 Windows(通过 WSL)。它让你可以在不同项目之间轻松切换 Python 版本,且不会影响系统自带的 Python。

### 在 macOS 上安装 pyenv

**通过 Homebrew 安装**

```bash
brew update
brew install pyenv
```

**配置 Shell 环境**

将以下内容添加到 `~/.zshrc` 或 `~/.bash_profile` 文件末尾:

```bash
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

使配置生效

source ~/.zshrc  # 如果使用 zsh
source ~/.bash_profile  # 如果使用 bash

在 Linux/WSL 上安装 pyenv

安装依赖包

sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
    libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
    libncurses5-dev libncursesw5-dev xz-utils tk-dev

安装 pyenv(官方推荐方法)

curl https://pyenv.run | bash

将自动添加到你的 Shell 配置文件中。完成后重启终端或运行 exec $SHELL`。 ### 使用 pyenv 安装和管理版本 **查看可安装的 Python 版本** ```bash # 列出所有可用的 Python 版本 pyenv install --list # 只搜索以 3.10 开头的版本 pyenv install --list | grep "3.10" ``` **安装指定版本** ```bash # 安装 Python 3.10.8 pyenv install 3.10.8 # 安装 Python 3.9.13 pyenv install 3.9.13 # 安装 Anaconda 发行版 pyenv install anaconda3-2023.03 ``` 安装过程中,pyenv 会从源码编译指定版本。编译完成后,该版本就纳入了管理范围。 **查看当前已安装的版本** ```bash pyenv versions ``` 输出示例: ``` * system (set by /Users/username/.pyenv/version) 3.8.10 3.9.13 3.10.8 anaconda3-2023.03 ``` 星号表示当前全局生效的版本。 **切换 Python 版本** ```bash # 全局切换(对当前用户所有项目生效) pyenv global 3.10.8 # 局部切换(仅当前目录及子目录生效,会在当前目录创建 .python-version 文件) pyenv local 3.9.13 # 临时切换(仅当前终端会话生效) pyenv shell 3.8.10 ``` **卸载不需要的版本** ```bash pyenv uninstall 3.8.10 ``` --- ## 使用 venv 创建隔离环境 安装多个 Python 版本后,每个项目最好使用独立的虚拟环境,避免包版本冲突。Python 3.3+ 自带 `venv` 模块,这是创建虚拟环境的标准方式。 **创建虚拟环境** 假设你在项目目录 `/project/myapp` 下: ```bash cd /project/myapp python -m venv venv ``` 执行完毕后,会在当前目录生成一个 `venv` 文件夹,里面包含该环境的 Python 解释器和 pip 工具。 **激活虚拟环境** ```bash # Linux/macOS source venv/bin/activate # Windows venv\Scripts\activate ``` 激活后,命令行提示符会显示环境名称,例如 `(venv) username@host:~$。此时运行 pythonpip 都会指向虚拟环境内的版本,不再影响系统全局环境。

在虚拟环境中安装依赖

# 升级 pip
pip install --upgrade pip

# 安装项目依赖
pip install requests flask numpy

导出和安装依赖清单

# 导出当前环境的所有包及其版本
pip freeze > requirements.txt

# 在其他机器或新环境中安装所有依赖
pip install -r requirements.txt

退出虚拟环境

deactivate

使用 Conda 管理环境和依赖(可选方案)

如果你需要频繁处理科学计算、数据分析或机器学习项目,Anaconda 或 Miniconda 是另一个不错的选择。Conda 不仅管理 Python 版本,还能处理非 Python 依赖(如 CUDA、MKL 库)。

安装 Miniconda(轻量级版本)

从 conda 官网下载安装脚本,或使用命令行安装:

# Linux/macOS
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

# Windows
# 下载安装包后双击运行

创建指定 Python 版本的环境

# 创建名为 myenv 的环境,Python 版本为 3.10
conda create -n myenv python=3.10

# 创建环境的同时安装常用包
conda create -n myenv python=3.10 numpy pandas matplotlib

激活和使用环境

# Linux/macOS
conda activate myenv

# Windows
conda activate myenv

管理环境

# 列出所有环境
conda env list

# 导出环境配置文件
conda env export > environment.yml

# 通过配置文件创建环境
conda env create -f environment.yml

# 删除环境
conda env remove -n myenv

验证配置是否成功

完成所有配置后,可以通过以下命令验证各工具是否正常工作:

# 查看 Python 默认版本
python --version

# 查看 pip 位置(确认是否指向正确的环境)
which pip  # Linux/macOS
where pip  # Windows

# 查看当前环境的包列表
pip list

# 如果使用 pyenv,查看当前生效的版本
pyenv version

# 如果使用 conda,查看当前环境
conda info --envs

常见问题与解决方案

问题一:命令找不到

如果输入 pypyenvpython 后提示 "command not found",首先检查环境变量是否正确配置。确认相应的 bin 目录已经添加到 PATH 中,并重启终端或运行 exec $SHELL 使改动生效。

问题二:pip 安装的包找不到

这通常是因为你运行 pip 时处于错误的 Python 环境中。最好的做法是显式指定版本:python -m pip install package_name。如果你使用 pyenv,记得先激活目标版本的局部环境,或者在安装时指定完整路径。

问题三:Windows 下多个 Python 版本冲突

如果系统中有多个 Python 安装,建议使用 py -m pip 代替 pip,这样会通过启动器调用对应版本的 pip。对于 pip 的路径冲突,也可以直接删除环境变量中重复的 Python 路径,只保留 C:\Windows\C:\PythonXY\ 等必要的条目。


总结

管理多个 Python 版本的核心思路是:使用版本管理工具(pyenv、conda 或 Windows 启动器)控制全局版本,使用虚拟环境(venv 或 conda env)隔离项目依赖。这样既能在不同项目间自由切换,又能保持每个环境的独立和干净。

建议在项目开始时就创建好虚拟环境,并将 .python-versionenvironment.yml 加入版本控制系统,这样团队成员可以一键复现完全一致的开发环境。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文