Python 虚拟环境 venv 入门:给每个项目一个干净的"房间"
写 Python 的朋友一定遇到过这种尴尬:项目 A 需要 requests 2.x,项目 B 却要求 requests 1.x;或者 pip 装了一堆包之后,根本分不清哪个包是哪个项目用的。解决办法很简单——给每个项目一个独立的"房间",这就是 Python 自带的虚拟环境 venv。
一、为什么需要虚拟环境
默认情况下,pip install 会把包安装到全局的 site-packages 里。时间一长,全局环境里堆满各种版本的包,不同项目互相"打架",出了问题很难排查。虚拟环境则为每个项目创建一套独立的 Python 解释器与包目录,互不干扰。
二、创建你的第一个虚拟环境
venv 是 Python 3.3 起内置的标准库,无需安装。打开终端,进入项目目录,执行:
python -m venv .venv
这条命令会在当前目录下生成 .venv 文件夹,里面是一套独立的 Python 环境。习惯上把虚拟环境目录命名为 .venv 或 venv。
三、激活与退出
创建好之后,需要"走进这个房间"才能使用:
- Windows:
.venv\Scripts\activate - macOS / Linux:
source .venv/bin/activate
激活成功后,终端提示符前会多出 (.venv) 前缀,表示你已经在虚拟环境中。此时 pip install 安装的包只会进入这个环境。想出来时执行:
deactivate
四、记录与复现依赖
在虚拟环境里装好依赖后,用一条命令生成清单:
pip freeze > requirements.txt
换一台机器(比如云服务器)时,只需创建并激活新的虚拟环境,再执行:
pip install -r requirements.txt
就能一键复现完全相同的依赖版本,部署时非常省心。
五、几个新手常踩的坑
- 忘记激活就 pip install:包又装回全局了。装之前先看一眼提示符有没有
(.venv)。 - 编辑器没选对解释器:在 VS Code / PyCharm 里记得把解释器切换到
.venv下的那一个,否则import会报红。 - 把 .venv 提交到 Git:虚拟环境目录很大且与平台相关,记得在
.gitignore里加上.venv,只提交requirements.txt。
六、小结
venv 的工作流其实只有四步:创建(python -m venv .venv)→ 激活(source .venv/bin/activate)→ 装包(pip install)→ 冻结(pip freeze > requirements.txt)。养成"一个项目一个虚拟环境"的习惯,依赖冲突会少掉一大半。如果你用云服务器跑 Python 项目,同样建议先建 venv 再装包:环境干净,回滚也容易。
- 点赞
- 收藏
- 关注作者
评论(0)