Python虚拟环境与包管理入门:venv+pip一次讲清
为什么先学虚拟环境
刚学 Python 的人,常在第一步就踩坑:跟着教程装了 requests、numpy、pandas,换个项目又装另一套版本,最后系统里的包越装越乱,一个项目能跑、另一个项目一跑就报版本冲突。根源不在代码,而在所有项目共用同一套全局 Python 环境。虚拟环境就是给每个项目单独开一间“小房间”,包只装在房间里,互不干扰;项目删了,房间连同依赖一起删掉,系统依旧干净。这个习惯越早养成,后面用 Docker 打包、配 AI 助手、做自动化脚本都会省很多事。
什么是虚拟环境
虚拟环境是一份独立的 Python 解释器副本加一套独立的包目录。激活之后,python 和 pip 指向的都是当前环境,安装、升级、卸载都只影响它。Python 3.3 起自带的 venv 模块就能创建,不需要再装第三方工具,对新手最友好。
三步创建并激活
第一步,在项目根目录创建环境,名字习惯用 .venv:
python3 -m venv .venv
第二步,激活它。Linux 或 macOS 用:
source .venv/bin/activate
Windows PowerShell 用:
.venv\Scripts\Activate.ps1
激活成功后,命令行前面会出现 (.venv) 这样的前缀,说明你已经在房间里了。用完退出也很简单,输入 deactivate 即可。
pip 的四个基本动作
装包、看包、导出、还原,是日常最常用的四个动作:
pip install requests
pip list
pip freeze > requirements.txt
pip install -r requirements.txt
装包之前,先把 pip 自身升到最新,少踩很多旧版本问题:
python -m pip install --upgrade pip
国内下载慢时,可以临时换一个镜像源,例如:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
requirements.txt 是项目的“购物清单”,别人拿到项目,先建虚拟环境,再按清单一键还原,就能得到和你一样的依赖组合。
新手最容易踩的四个坑
第一,忘记激活就 pip install,包直接装到了全局环境,项目换台电脑还是跑不起来。每次开工前,先看一眼命令行有没有 (.venv) 前缀。
第二,把 .venv 提交进了 Git。虚拟环境体积大、依赖操作系统,不应进版本库,只提交 requirements.txt,并在 .gitignore 里加上 .venv 和 pycache。
第三,requirements.txt 只写包名不写版本。pip freeze 会连同版本号一起导出,换机器复现才靠谱;只写包名时,新版包改了接口,代码可能直接报错。
第四,以为 venv 能解决所有版本问题。venv 只隔离包,不隔离解释器本身的版本。如果两个项目需要 Python 3.10 和 3.12 两个不同版本,就要再借助 pyenv 或 conda 管理多个解释器。
和 Docker、AI 工具怎么配合
虚拟环境解决的是“同一台机器上多个项目”的隔离,Docker 解决的是“换台机器也能跑”的隔离,两者是互补的:先在 venv 里把依赖跑通、用 freeze 导出 requirements.txt,再写 Dockerfile 按这份清单安装,镜像构建才稳定。用 AI 编程助手生成代码时,也要让它按 requirements.txt 里的版本写,并把助手给出的安装命令先在虚拟环境里试一遍,确认能跑再提交,避免助手凭记忆给出已经不存在的旧版本。
上手清单
- 新项目第一步:python -m venv .venv,然后激活。
- 装包前先升级 pip,下载慢就配镜像源。
- 依赖确定后,立即 pip freeze > requirements.txt。
- .venv 和 pycache 写进 .gitignore,不提交。
- 换电脑时先建环境,再 pip install -r requirements.txt 还原。
环境管理不是“高级技巧”,而是写 Python 的基本功。花十分钟把 venv 和 pip 的流程走通一次,之后每个项目都有干净、可复现的起点,调试和部署都会轻松得多。
- 点赞
- 收藏
- 关注作者
评论(0)