Python虚拟环境入门:用venv隔离项目依赖
刚学 Python 的时候,很多人都会直接在系统里装一堆第三方库。项目一多,问题就来了:A 项目需要 requests 2.x,B 项目却依赖更新的版本;换一台电脑,又要凭记忆重新装一遍。虚拟环境就是用来解决这个问题的:它为每个项目创建一个独立的 Python 运行空间,库互不干扰,项目也可以随身带走一份清晰的依赖清单。
一、虚拟环境到底隔离了什么
虚拟环境并不是复制一整套 Python,而是在项目目录里建一个独立文件夹,里面有自己的解释器链接和 site-packages 目录。激活后,python 和 pip 指向的都是这个环境,安装的库只进这个环境,不会污染系统环境。退出后,系统环境保持原样。理解这一点很重要:虚拟环境隔离的是依赖,不是操作系统,也不是 Python 本身的大版本,创建时用哪个解释器,环境里就是哪个版本。
二、创建第一个环境
Python 3.3 起自带 venv 模块,不需要额外安装。以项目目录为例,先进入项目文件夹,再执行创建命令:
python -m venv .venv
命令完成后,目录下会出现 .venv 文件夹,里面包含 Scripts 或 bin 目录、lib 目录和配置文件。习惯上把环境命名为 .venv 或 venv,前者更不容易和项目代码混淆。注意不要把环境文件夹提交到版本控制,后面会讲如何处理。
三、激活与退出
在 Windows 的命令提示符或 PowerShell 里执行:
.venv\Scripts\activate
在 macOS 或 Linux 终端里执行:
source .venv/bin/activate
成功后,命令行提示符前面会出现 (.venv) 字样,这就是当前环境已生效的标志。此时执行 python --version 和 pip list,看到的都是该环境的版本和库。工作结束时输入 deactivate 即可退出,提示符恢复正常。如果想彻底删除环境,退出后直接删除 .venv 文件夹即可,不会影响系统 Python。
四、安装依赖并生成清单
激活环境后,再安装项目需要的库,例如:
pip install requests
安装完成后,用一条命令把当前环境的依赖写成清单:
pip freeze > requirements.txt
这个文件记录了每个库和精确版本号。换电脑或给同事交接时,只要创建并激活新环境,再执行:
pip install -r requirements.txt
就能还原出一套基本一致的依赖。这也是虚拟环境最大的实用价值:环境可复现,而不是靠口头说明。
五、容易踩的几个坑
第一,忘记激活就安装,结果库装进了系统环境,项目运行时又找不到。第二,把 .venv 提交到 Git,不仅仓库臃肿,还可能因为路径和系统差异无法使用,正确做法是在 .gitignore 里加上一行 .venv/,只提交 requirements.txt 和代码。第三,在不同项目里共用一个环境,时间一长又回到混乱的起点,一个项目一个环境才是省事的做法。第四,升级某个库之前先看项目是否真的需要最新版,盲目升级可能引入不兼容的改动。
六、一个顺手的工作流
新建项目时,先建目录、创建虚拟环境、激活、安装依赖、生成 requirements.txt;日常开发时,进项目先激活,退出前如有新增依赖就更新清单;交接时,别人拿到代码和清单就能重建环境。这套流程只有几条命令,却能避免大量“在我电脑上能跑”的问题。等熟悉 venv 后,再去了解 conda、Poetry、uv 等工具会更容易,因为它们解决的都是同一类问题:隔离、复现和管理依赖。
结语
虚拟环境不是高级技巧,而是 Python 开发的基本习惯。早一点养成每个项目独立环境的习惯,后面做爬虫、数据分析、Web 开发都会轻松很多。从今天开始,给你的下一个项目建一个 .venv 吧。
- 点赞
- 收藏
- 关注作者
评论(0)