Python虚拟环境与依赖管理:从入门到好习惯

举报
yd_267967485 发表于 2026/10/22 21:36:21 2026/10/22
【摘要】 很多 Python 新手都会遇到这样的问题:项目 A 需要 requests 2.28,项目 B 需要 requests 2.31;或者刚升级了某个库,旧项目就跑不起来了。如果所有项目都装在同一个全局环境里,依赖冲突迟早会找上门。虚拟环境(Virtual Environment)就是为每个项目创建一个独立的“小房间”:Python 解释器、第三方库、环境变量都互不干扰。项目 A 的房间装什么...

很多 Python 新手都会遇到这样的问题:项目 A 需要 requests 2.28,项目 B 需要 requests 2.31;或者刚升级了某个库,旧项目就跑不起来了。如果所有项目都装在同一个全局环境里,依赖冲突迟早会找上门。

虚拟环境(Virtual Environment)就是为每个项目创建一个独立的“小房间”:Python 解释器、第三方库、环境变量都互不干扰。项目 A 的房间装什么版本,项目 B 完全不受影响。

一、用 venv 创建第一个虚拟环境

Python 3.3 以上版本自带 venv,无需安装任何第三方工具。

在项目目录下创建名为 .venv 的虚拟环境:
python -m venv .venv

激活(Windows):
.venv\Scripts\activate

激活(Linux / macOS):
source .venv/bin/activate

激活成功后,终端提示符前会多出 (.venv) 字样,表示你已经“走进”了这个独立房间。退出时输入 deactivate 即可。

一个小习惯:把 .venv 目录名加到 .gitignore 里,不要把它提交到版本库。虚拟环境是可再生的,真正要保留的是依赖清单。

二、pip 常用命令速查

在激活的虚拟环境里,pip 安装的包只会进入当前环境:

pip install requests         安装
pip install requests==2.31.0  安装指定版本
pip uninstall requests       卸载
pip list                     查看已安装的包
pip show requests            查看某个包的详情
pip install -U requests      升级到最新版

建议配置国内镜像源提速,例如:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

也可以把镜像地址写进 pip 的配置文件(Linux 下是 pip.conf,Windows 下是 pip.ini),一劳永逸。

三、requirements.txt:依赖清单的正确姿势

虚拟环境可以随时重建,但“装了哪些包、什么版本”必须留档,这就是 requirements.txt 的作用:

导出当前环境依赖:
pip freeze > requirements.txt

在新机器或新环境中一键还原:
pip install -r requirements.txt

注意两点:第一,pip freeze 会导出所有包,包括间接依赖,清单会比较长,这是正常的;第二,导出的最好时机是“项目可运行”的时刻,随手提交到版本库。

四、常见坑与好习惯

1. 忘记激活就 pip install:包会装进全局环境,污染系统。安装前先看一眼提示符前面有没有 (.venv)。
2. 一个环境用到老:不同项目混用一个虚拟环境,迟早冲突。建议“一个项目一个环境”。
3. requirements.txt 长期不更新:装了新包就顺手 pip freeze,别等到部署时才发现对不上。
4. 把 .venv 提交到 Git:虚拟环境动辄几百 MB,还跨平台不兼容,只提交 requirements.txt 就够了。
5. 生产环境用固定版本:requests>=2.28 这种宽松写法在开发时省事,部署生产建议锁定具体版本,避免某天上游发版带来意外。

结语

虚拟环境 + pip + requirements.txt,是 Python 开发者最基础也最重要的一套组合拳。养成“进项目先建环境、装包就更新清单”的习惯,依赖冲突会少掉九成。工具不复杂,难的是坚持。下次开新项目时,花一分钟建个虚拟环境,你会感谢今天的自己。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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