Python venv 虚拟环境搭建详解

Python venv 虚拟环境搭建详解

一、为什么需要虚拟环境

Python 全局环境只有一份,多个项目依赖的第三方包版本经常冲突:项目 A 要 Django 3.2,项目 B 要 Django 4.2,全局装只能二选一,升级一个包又可能搞坏另一个项目。venv 是 Python 官方自带的轻量级隔离工具,为每个项目创建独立的包目录,项目之间互不干扰,不需要安装额外软件,是新手和线上部署的首选。

二、创建与激活环境

Python 3.3 之后内置 venv,无需 pip 安装。在项目目录执行:

# 创建名为 .venv 的虚拟环境
python3 -m venv .venv

# Linux / macOS 激活
source .venv/bin/activate

# Windows PowerShell
.venv\Scripts\Activate.ps1

激活后命令行前面出现 (.venv) 标识,此时 pip 安装的包都进入这个环境,不影响全局。

三、安装依赖与导出

激活状态下用 pip 安装:

pip install requests==2.31.0
pip install flask

把当前环境依赖导出为 requirements.txt,方便别人复现:

pip freeze > requirements.txt

新机器安装依赖:

pip install -r requirements.txt

四、退出与删除

deactivate

退出激活回到全局环境。整个虚拟环境就是项目里的 .venv 文件夹,直接删除目录即可彻底清理,不会残留。

五、不同 Python 版本并存

python3 指向哪个解释器,venv 就复制哪个版本。需要指定版本时用对应命令:

python3.10 -m venv .venv310

一个项目绑定一个解释器版本,避免版本混用。

六、与 conda、poetry 的区别

  • venv:官方轻量,只隔离包,不管理 Python 版本,适合简单项目;
  • conda:同时管理解释器版本和包,适合科学计算、多版本共存;
  • poetry:在 venv 基础上加依赖锁文件和打包发布,适合现代 Python 工程。
    中小项目优先 venv,复杂依赖再上 poetry。

七、常见误区

  1. 忘了激活就 pip install,包装到全局,环境白建;
  2. 把 .venv 提交进 Git,体积巨大,应加入 .gitignore;
  3. requirements.txt 里写死所有间接依赖,跨平台安装报错;
  4. 删除环境直接 kill 进程,其实只要删文件夹;
  5. 多个项目共用一个 venv,失去隔离意义。

八、总结

venv 的核心是 python -m venv 创建隔离目录、source 激活、pip 安装、freeze 导出、deactivate 退出。配合 requirements.txt 实现环境复现,用 .gitignore 排除环境目录。掌握这套流程,就能解决 Python 多项目依赖冲突,是开发和部署的基本功。


emer 发布于  2026-11-14 07:22 
'); })();