Python虚拟环境需先确保系统安装多个Python版本,再用venv或pyenv-virtualenv指定版本创建并激活,避免依赖冲突。

Python虚拟环境是隔离项目依赖的核心工具,尤其在多版本Python共存时,能避免包冲突、提升可复现性。关键不是“要不要用”,而是“怎么选、怎么建、怎么切”。
确认系统已安装多个Python版本
虚拟环境的前提是本地有多个可用的Python解释器(如3.8、3.9、3.11、3.12等)。可通过以下命令快速检查:
-
Windows:打开终端,依次运行
py -3.8 --version、py -3.9 --version等 -
macOS/Linux:运行
python3.8 --version、python3.11 --version等 - 若提示“command not found”,需先通过 pyenv、Homebrew(macOS)、apt(Ubuntu)或官网安装包补充对应版本
用venv创建指定Python版本的虚拟环境
Python 3.3+ 自带 venv 模块,无需额外安装。重点在于显式指定解释器路径,确保环境绑定正确版本:
-
Windows 示例:
py -3.9 -m venv myproject-py39 -
macOS/Linux 示例:
python3.11 -m venv myproject-py311 - 执行后会在当前目录生成
myproject-py311/文件夹,含独立 pip、python 可执行文件 - 注意:不要用
python -m venv(它调用的是默认 python,可能不是你想要的版本)
激活与使用虚拟环境
激活只是临时修改 shell 的 PATH,让当前终端优先调用该环境下的 python 和 pip:
立即学习“Python免费学习笔记(深入)”;
-
Windows(CMD):
myproject-py39\Scripts\activate.bat -
Windows(PowerShell):
myproject-py39\Scripts\Activate.ps1(需先执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser) -
macOS/Linux:
source myproject-py311/bin/activate - 成功激活后,命令行前缀会显示环境名(如
(myproject-py311)),此时python --version和pip list均反映该环境状态
进阶:用pyenv + virtualenv管理多版本更高效
当频繁切换 Python 大版本(如3.8→3.12)且需为每个版本配多个项目环境时,推荐组合工具:
- pyenv:统一管理多个 Python 解释器安装(不污染系统)
- pyenv-virtualenv:插件,支持一键创建并绑定指定版本的虚拟环境
- 常用操作示例:
pyenv install 3.10.12→ 安装 Python 3.10.12pyenv virtualenv 3.10.12 myapp-310→ 创建环境pyenv activate myapp-310→ 激活(全局生效,无需每次 source)pyenv deactivate→ 退出
基本上就这些。核心逻辑很清晰:先有多个Python,再用 venv 或 pyenv-virtualenv 绑定创建,最后靠激活切换。不复杂但容易忽略版本指定这一步——多数依赖问题,其实都卡在这儿。










