Python 虚拟环境 venv 入门:一个项目一套依赖,干净又省心
刚学 Python 时,很多人都是直接在系统里 pip install 装包。第一个项目要 requests 2.x,第二个项目却要旧版本,升级一个就把另一个弄坏了;换台电脑重装,又想不起当初装过哪些包、是哪个版本。这类麻烦,几乎都可以用 Python 自带的 venv 一次解决。
一、venv 是什么
venv 是 Python 3.3 起内置的虚拟环境工具。它会在项目目录下复制一份干净的 Python 解释器和独立的包目录,让每个项目拥有自己的依赖空间。项目 A 装了 Django 5,项目 B 装 Django 4,互不干扰;删掉项目时,连同它的虚拟环境一起删掉,系统 Python 依然干净。它不需要额外安装,学会三组命令就够用了。
二、创建虚拟环境
先进入项目目录,再创建名为 .venv 的环境:
cd my-project
python -m venv .venv
Windows 上如果 python 命令不可用,可以改用 py -m venv .venv。创建成功后,项目里会出现一个 .venv 文件夹,里面就是这个项目专属的 Python 环境。把它加进 .gitignore,不要提交到代码仓库,因为它体积大、且与操作系统有关,换环境重新创建即可。
三、激活与退出
创建只是第一步,激活后安装的包才会进到这个环境里。Windows(PowerShell)执行 .venv\Scripts\Activate.ps1,macOS / Linux 执行 source .venv/bin/activate。激活成功后,命令行前面会出现 (.venv) 这样的前缀,这就是最直观的标志。用完之后输入 deactivate 就能退出,回到系统 Python。
一个容易踩的坑是:忘记激活就 pip install,包又装回了系统环境。每次开新终端、换项目之前,先看一眼命令行前面有没有 (.venv)。
四、装包与还原依赖
激活后,像平时一样用 pip 安装,再把依赖清单保存下来:
pip install requests
pip freeze > requirements.txt
requirements.txt 记录了当前环境里所有包和版本号,是项目的“依赖清单”。别人拿到项目后,只要创建并激活新的虚拟环境,再执行 pip install -r requirements.txt 就能还原。这样开发、测试和部署用的依赖版本保持一致,出现“在我电脑上明明能跑”的概率会小很多。如果某个包升级后出问题,也可以对照清单快速回退到原来的版本。
五、三个实用习惯
第一,一个项目一个环境,不要多个项目共用同一个虚拟环境,否则隔离就失去了意义。第二,定期更新 requirements.txt,装了新包、升级了版本,就重新生成一次,避免清单与实际环境脱节。第三,系统 Python 只用来创建虚拟环境,不直接往里面装项目依赖,系统自带的工具可能依赖特定版本的包,乱装容易影响系统功能。
小结
venv 的思路其实很简单:把依赖关进项目自己的“小房间”,而不是堆在公共区域。创建、激活、装包、记录依赖,四步走下来,你的 Python 项目就有了干净、可复制的环境。下次新建项目时,不妨先花一分钟创建虚拟环境,再开始写代码,这个小习惯会在项目变大之后帮你省下很多排查时间。练习建议:新建一个空项目,用 venv 创建环境,装一个 requests,再用 pip freeze 生成清单,删除环境后重新创建并还原一次,完整走一遍流程就记住了。
- 点赞
- 收藏
- 关注作者
评论(0)