《Python 虚拟环境入门:venv 一次讲清》
写 Python 项目时最常见的一个麻烦是:两个项目要用的同一个库版本不一样。A 项目要 requests 2.28,B 项目要 2.31,全局只装一份 pip 包,装了这个就坏了那个。虚拟环境就是为了解决这个问题:给每个项目一个独立的包空间,互不干扰。
什么是虚拟环境:虚拟环境本质上就是一个独立的目录,里面有一份 Python 解释器的副本链接和一套独立的 site-packages。激活它之后,python 和 pip 指向的都是这个环境里的版本,装包、卸包都只影响当前项目,不会动系统全局环境。项目换电脑、换服务器时,照着依赖清单重建一个环境就能复现,干净又可控。
创建与激活:Python 3.3 之后自带 venv 模块,不需要额外安装。进入项目目录后执行:python3 -m venv .venv,这会在项目下生成一个 .venv 目录。接下来激活它,Linux 和 macOS 用:source .venv/bin/activate;Windows 用 .venv\Scripts\activate。激活成功后,命令行前面会出现 (.venv) 前缀,这就是当前环境已生效的标志。用完退出时输入 deactivate 即可。
装包与冻结依赖:激活状态下用 pip 装包,和平常一样:pip install requests flask。项目依赖稳定后,把当前环境的包清单导出来:pip freeze > requirements.txt。这份文件要提交进版本库。别人拿到项目后,只要新建虚拟环境再跑一句就能还原:pip install -r requirements.txt。建议养成习惯:每装一个新包就更新一次 requirements.txt,否则过两个月自己都记不清项目到底依赖了什么。
几个实用习惯:第一,虚拟环境目录不要提交进 Git,在 .gitignore 里加一行 .venv/。第二,不同项目用不同环境,哪怕两个项目依赖完全一样也别共用,省下的麻烦远多于多占的那点磁盘。第三,升级 pip 本身也只在环境内升级,pip install --upgrade pip 不会影响系统。第四,如果项目要部署到服务器,优先用和服务器相同大版本的 Python 建环境,避免本地 3.12、线上 3.10 这种版本差带来的兼容问题。
虚拟环境不是什么高级技巧,它就是 Python 开发的一条底线:一个项目、一个环境、一份 requirements.txt。把这套习惯固定下来,依赖冲突、环境污染这类问题基本就不会再找上门。
- 点赞
- 收藏
- 关注作者
评论(0)