用 Python 虚拟环境隔离项目依赖:venv 从创建到 pip freeze 的完整流程

举报
yd_221894022 发表于 2026/10/31 07:46:46 2026/10/31
【摘要】 为什么需要虚拟环境很多 Python 新手一开始都在全局环境里装包:项目 A 要 requests 2.28,项目 B 要 requests 2.32,装来装去互相覆盖,最后连哪个项目依赖哪个版本都说不清。虚拟环境就是给每个项目单独准备一套 Python 解释器和包目录,项目之间互不干扰,换电脑、换同事交接时也能按同一份依赖清单复现。 1. 先确认 Pythonpython --versio...

为什么需要虚拟环境

很多 Python 新手一开始都在全局环境里装包:项目 A 要 requests 2.28,项目 B 要 requests 2.32,装来装去互相覆盖,最后连哪个项目依赖哪个版本都说不清。虚拟环境就是给每个项目单独准备一套 Python 解释器和包目录,项目之间互不干扰,换电脑、换同事交接时也能按同一份依赖清单复现。

1. 先确认 Python

python --version
python -m pip --version

如果系统里有多个 Python,建议先确认你要用的那一个,再创建环境,避免建完才发现版本不对。

2. 创建虚拟环境

在项目根目录执行:

python -m venv .venv

完成后项目里会出现 .venv 文件夹,里面有独立的解释器和 pip。习惯上把环境文件夹命名为 .venv,一眼就能看出它是虚拟环境,也方便统一写进忽略规则。

3. 激活虚拟环境

Windows(PowerShell):

.venv\Scripts\Activate.ps1

macOS / Linux:

source .venv/bin/activate

激活成功后,命令行提示符前面会出现 (.venv)。这一步最容易被跳过:没激活就 pip install,包其实装到了全局环境,虚拟环境里仍然找不到。

4. 安装依赖并查看

pip install requests
pip list

确认无误后,把当前环境里的包导出成清单:

pip freeze > requirements.txt

导出的文件大概是这样:

requests==2.32.3
urllib3==2.2.2

pip freeze 只记录已安装包,不记录你“打算装”的包,所以导出前先跑通一次代码,再导出。

5. 在新环境里复现

deactivate
python -m venv .venv-new
source .venv-new/bin/activate
pip install -r requirements.txt

如果新环境里程序能正常跑起来,说明依赖清单是完整的;如果报错缺包,回到原环境补装并重新导出一次。

6. 几个新手常见坑

  • 忘记激活:先看提示符有没有 (.venv),再装包。
  • 把 .venv 提交到代码仓库:它体积大、跟操作系统有关,应该忽略。
  • requirements.txt 里混进本地路径包:复现时会失败,尽量只保留 PyPI 上的包和版本号。
  • 每个项目共用一个环境:图省事反而最费事,项目一多就分不清。

建议在 .gitignore 里加一行:

.venv/

小结

记住四个动作就够了:创建 python -m venv .venv,激活,安装并用 pip freeze > requirements.txt 导出,需要复现时用 pip install -r requirements.txt。把这个流程固定下来,以后每个 Python 项目一开始就隔离依赖,能少踩很多“在我电脑上能跑”的坑。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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