Python 新项目三步建隔离环境:venv + pip 国内源 + requirements 锁定

举报
yd_260072176 发表于 2026/10/25 06:10:20 2026/10/25
【摘要】 新项目先建隔离环境:用 venv 创建并激活 .venv,设置 pip 国内源,再用 requirements.txt 锁定依赖,并避开系统 pip 与虚拟环境混用的常见坑。

新项目开始时,我做的第一件事不是写业务代码,而是先建一个隔离环境。这个习惯帮我省过很多麻烦:不同项目依赖版本不同,如果都装到系统 Python 里,迟早会互相打架。下面三步,就是我每次开新项目都会走的固定流程,照着做,十分钟就能得到一个干净、可复现的环境。

第一步:用 venv 建一个项目专属环境

在项目根目录执行:

python3 -m venv .venv

这条命令会在当前目录生成一个 .venv 文件夹,里面是一套独立的 Python 解释器和 pip。注意不要把 .venv 提交到版本控制,记得把它加进 .gitignore。创建完成后激活它:

source .venv/bin/activate

激活成功后,终端提示符前面会出现 (.venv) 字样。这时再用 which python 和 pip -V 确认一下,路径应该指向项目里的 .venv,而不是系统目录。只有确认了这一点,后面装的包才真正装进了隔离环境。

第二步:把 pip 换成国内源,安装不再慢

默认源在国外网络不稳定时,装包经常超时重试。激活环境后,我会先设置一次国内源,命令如下(整行作为代码输入,不要点成链接):

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

设置完成后用 pip config list 看一眼,确认 index-url 已经生效。之后安装常用包就顺畅得多,例如:

pip install requests

这里的关键是顺序:先激活虚拟环境,再设置源、再装包。如果顺序反了,源可能写到了系统配置里,或者包装到了系统环境里,后面排查会很绕。

第三步:用 requirements.txt 把依赖锁下来

项目能跑起来还不够,别人拿到代码也要能一键复现。装好依赖后立即导出清单:

pip freeze > requirements.txt

这份文件记录了每个包的确切版本,是项目依赖的快照。换一台机器或新同事加入时,只需要重建并激活环境,再执行:

pip install -r requirements.txt

就能得到基本一致的环境。平时新增依赖后也要顺手重新执行 pip freeze 更新清单,不要等到部署前才想起来补,否则很容易出现本地能跑、线上缺包的情况。

真实踩坑:系统 pip 与虚拟环境混用

我最早踩过的坑,就是没有激活环境就直接 pip install。表面上看安装成功了,运行也正常,但其实包装进了系统 Python。换项目后,旧包和新项目要求的版本冲突,报错信息又指向代码本身,查了很久才发现是环境问题。更麻烦的是,两个项目共用系统环境时,升级一个包可能把另一个项目也搞坏。

解决办法很直接:每次开工先看提示符有没有 (.venv),不确定就执行 which python 核对;做完收尾用 deactivate 退出虚拟环境,回到系统环境后再做其他事;如果环境已经乱了,不要勉强修补,直接删除 .venv 重新创建,再用 requirements.txt 重装,往往比逐个排查更快。

检查清单:创建 .venv、激活并核对路径、设置国内源、安装依赖、导出 requirements.txt、退出时 deactivate。把这六件事做成固定动作,新项目的环境问题基本就不会再反复出现。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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