Python 入门:用 venv 和 pip 把项目依赖管得明明白白

举报
yd_268428615 发表于 2026/11/06 06:15:03 2026/11/06
【摘要】 新手常把包装进全局环境导致版本冲突。本文介绍用 venv 为每个项目创建独立环境、激活与验证方法,以及 pip 安装、换源、requirements.txt 固化依赖的完整流程,并总结五个常见坑。

刚学 Python 的人,几乎都会遇到同一个尴尬:跟着教程装了一个库,换个项目又报错;明明昨天还能跑的代码,今天提示找不到模块。问题大多不在代码本身,而在环境——你一直在用全局环境装包,不同项目互相干扰。今天这篇文章,就把 Python 的虚拟环境 venv 和包管理工具 pip 一次讲清楚。

为什么需要虚拟环境

Python 装包默认进全局环境。项目 A 需要 requests 2.28,项目 B 需要 requests 2.32,两个版本装在同一个环境里只能留一个,另一个项目迟早报错。更糟的是,系统里别的 Python 工具也可能依赖这些库,一次升级可能牵连一大片。

虚拟环境就是给每个项目一个独立的“小房间”:解释器、安装的第三方库、执行路径都互相隔离。项目 A 用自己的 requests 2.28,项目 B 用自己的 2.32,互不打扰。删项目时连同环境一起删掉,不留垃圾。

三步创建你的第一个虚拟环境

假设项目目录是 myproject,先进入目录,再执行:

python -m venv .venv

这会在项目下生成一个 .venv 文件夹,里面是一份独立的 Python 环境。注意:.venv 要加进 .gitignore,不要提交到代码仓库。

第二步是激活。Windows 上执行 .venv\Scripts\activate,macOS 和 Linux 上执行 source .venv/bin/activate。激活成功后,命令行前面会出现 (.venv) 前缀,这就是环境已生效的标志。

第三步,确认当前用的真是虚拟环境的 Python:

python --version
pip --version

看 pip 的路径是否指向项目下的 .venv 目录。如果路径还是全局的,说明没有激活成功,先别急着装包。

pip 的日常用法

激活环境后,装包就用 pip:

pip install requests
pip install requests==2.32.3

不写版本号装最新版,写 == 可以锁定版本。查看已装的包用 pip list,卸载用 pip uninstall requests。升级 pip 自身用 python -m pip install --upgrade pip,新环境第一件事建议先做这一步。

很多人装包慢,是因为默认源在境外。临时换源可以在命令后加 -i https://pypi.tuna.tsinghua.edu.cn/simple,长期使用可以写进 pip 的配置文件,一劳永逸。

用 requirements.txt 固化依赖

项目做完要交给同事或者部署到服务器,别人怎么知道要装哪些库?答案是 requirements.txt:

pip freeze > requirements.txt

这个文件记录了当前环境里所有包和精确版本号。新环境里只需要一条命令就能完整还原:

pip install -r requirements.txt

养成习惯:每次增删依赖后重新生成一次 requirements.txt。需要注意的是,pip freeze 会把所有包都列出来,包括间接依赖,文件稍长是正常的。

新手最容易踩的五个坑

第一,忘记激活环境就装包,结果装进了全局环境,项目运行时却找不到。第二,激活了一个环境的终端,又在另一个终端里运行代码,环境根本没生效。第三,把 .venv 提交进了 Git,仓库变得巨大无比。第四,多个项目共用一个环境,迟早出现版本冲突。第五,报错 ModuleNotFoundError 时第一反应是重装 Python,其实多数时候只是用错了解释器。

遇到“找不到模块”时,先做三件事:确认终端提示符前有没有 (.venv),用 which python(Windows 用 where python)确认解释器路径,再用 pip list 确认包确实装在这个环境里。九成问题到这一步就定位了。

一个推荐的工作流

新建项目时,按这个顺序走就不会乱:创建项目目录、执行 python -m venv .venv、激活环境、升级 pip、安装依赖、生成 requirements.txt、把 .venv 写进 .gitignore。以后每次打开项目,先激活环境再工作,退出时执行 deactivate 即可。

虚拟环境不是什么高深技术,它只是把“我的项目用什么库、什么版本”这件事变得明确、可重复。当你开始用它管理依赖,换电脑、换同事、部署上线都会顺畅很多。从今天起,给每个新项目都建一个属于它自己的虚拟环境吧。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。