news 2026/6/9 20:10:32

【Python】基础语法入门(十九)——虚拟环境与依赖管理:打造干净、可复现的开发环境

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Python】基础语法入门(十九)——虚拟环境与依赖管理:打造干净、可复现的开发环境


🧪说明:随着项目增多,你是否遇到过这些问题?

  • 项目 A 需要requests==2.25,项目 B 需要requests==2.30
  • 在同事电脑上能跑,自己电脑却报错
  • 不小心用pip install污染了系统 Python

本篇将教你使用虚拟环境(Virtual Environment)依赖管理工具,彻底解决上述问题,实现:

  • ✅ 项目间依赖隔离
  • ✅ 环境一键复现
  • ✅ 安全安装第三方包

这是专业 Python 开发的第一步


1. 为什么需要虚拟环境?

❌ 全局安装的问题

# 直接安装到系统 Pythonpipinstallflask==2.0pipinstallsome-old-tool# 它要求 flask<2.0 → 冲突!

后果:

  • 包版本冲突
  • 卸载困难
  • 项目无法迁移

✅ 虚拟环境的作用

  • 为每个项目创建独立的 Python 环境
  • 包安装在项目专属目录,不影响全局
  • 可指定 Python 版本(配合pyenv

📦类比
虚拟环境 ≈ 手机上的“应用沙盒”——每个 App 有自己的空间,互不干扰。


2. 创建与使用虚拟环境(标准方法)

Python 3.3+ 内置venv模块,无需额外安装。

步骤 1:创建虚拟环境

# 进入项目目录cdmy_project# 创建名为 venv 的虚拟环境(推荐名称)python -m venv venv

💡 生成目录结构:

venv/ ├── bin/ # Linux/Mac(Windows 为 Scripts/) │ ├── python │ └── pip ├── lib/ └── pyvenv.cfg

步骤 2:激活虚拟环境

系统命令
Windows (CMD)venv\Scripts\activate
Windows (PowerShell)venv\Scripts\Activate.ps1(需先执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
macOS / Linuxsource venv/bin/activate

✅ 激活后,命令行提示符通常会显示(venv)

(venv)$whichpython /path/to/my_project/venv/bin/python

步骤 3:在虚拟环境中工作

(venv)$ pipinstallrequests flask(venv)$ python app.py

🔑 此时所有pip安装的包都只存在于venv/目录中。

步骤 4:退出虚拟环境

(venv)$ deactivate $# 提示符恢复正常

3. 依赖管理:requirements.txt

记录项目所需的所有包及其版本,实现环境复现

生成依赖文件

(venv)$ pip freeze>requirements.txt

requirements.txt内容示例:

Flask==2.3.2 requests==2.31.0 Werkzeug==2.3.6

在新环境安装依赖

# 创建并激活新虚拟环境python -m venv new_venvsourcenew_venv/bin/activate# Linux/Mac# 安装所有依赖pipinstall-r requirements.txt

✅ 现在新环境与原环境完全一致


4. 最佳实践与技巧

✅ 项目结构推荐

my_project/ ├── venv/ ← 虚拟环境(**不要提交到 Git**) ├── src/ ← 源代码 │ └── app.py ├── requirements.txt ← 依赖清单(**必须提交**) ├── .gitignore ← 忽略 venv/ └── README.md

.gitignore内容

# 忽略虚拟环境 venv/ env/ ENV/ # 忽略 Python 缓存 __pycache__/ *.pyc

区分开发与生产依赖(进阶)

# requirements.txt —— 生产依赖flask==2.3.2# requirements-dev.txt —— 开发依赖(测试、格式化等)-r requirements.txt# 继承生产依赖pytest==7.4.0black==23.7.0

安装开发依赖:

pipinstall-r requirements-dev.txt

5. 常见问题解答

❓ Q1:虚拟环境可以移动或重命名吗?

⚠️不建议。路径硬编码在venv/pyvenv.cfg中。
✅ 正确做法:删除旧环境,用requirements.txt重建。

❓ Q2:如何指定 Python 版本?

# 使用特定 Python 解释器创建环境python3.9 -m venv venv

💡 若需管理多个 Python 版本,推荐工具:pyenv(macOS/Linux)或pyenv-win(Windows)。

❓ Q3:Jupyter Notebook 如何使用虚拟环境?

(venv)$ pipinstallipykernel(venv)$ python -m ipykernelinstall--user --name=my_project_env

然后在 Notebook 的Kernel → Change Kernel中选择my_project_env


6. 现代替代方案简介(了解即可)

虽然venv+pip是标准组合,但以下工具提供更高级功能:

工具特点
Poetry一体化管理依赖、虚拟环境、打包发布
Pipenv结合pipvirtualenv,自动生成Pipfile
Conda跨语言环境管理(常用于数据科学)

📌初学者建议:先掌握venv+requirements.txt,再探索高级工具。


7. 总结:虚拟环境工作流

  1. 新建项目mkdir project && cd project
  2. 创建环境python -m venv venv
  3. 激活环境source venv/bin/activate(Linux/Mac)
  4. 安装包pip install flask
  5. 保存依赖pip freeze > requirements.txt
  6. 提交代码git add . && git commit -m "Initial commit"
  7. 换电脑/协作git clone ...python -m venv venvpip install -r requirements.txt

🔒黄金法则
“永远不在全局 Python 中安装项目依赖!”


下一步行动

  1. 为你的 To-Do List 项目创建虚拟环境
  2. 生成requirements.txt并提交到 Git
  3. 在另一台电脑(或新目录)克隆项目,验证能否一键复现环境

🐍良好的环境管理习惯,是专业开发者的第一块基石。
从今天起,告别“在我机器上能跑”的尴尬!

继续前行,构建可信赖的 Python 项目!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:18:47

AI工程化实战《一》:基于 Qwen + LangChain 构建企业级知识库问答系统

一、为什么 RAG 是当前 AI 落地的最佳路径&#xff1f; 1.1 大模型的三大痛点 问题说明RAG 如何解决幻觉&#xff08;Hallucination&#xff09;模型编造不存在的事实仅基于检索到的真实文档回答知识滞后训练数据截止 2024 年可注入最新企业文档&#xff08;如 2025 年财报&a…

作者头像 李华
网站建设 2026/6/9 23:47:18

Google推出托管MCP服务器,让AI Agent轻松接入其工具生态

随着AI Agent生态系统的快速发展&#xff0c;Google的这一举措为开发者提供了更简单、更安全的方式来连接AI Agent与Google Cloud服务。通过标准化的MCP协议和完全托管的服务器&#xff0c;Google正在降低AI Agent集成的门槛&#xff0c;同时确保企业级的安全和治理要求得到满足…

作者头像 李华
网站建设 2026/6/10 14:41:58

前端高频面试题:深拷贝和浅拷贝的区别?

前言 对于前端同学来说&#xff0c;对象的深拷贝和浅拷贝可以说是面试中最火热的题目之一了&#xff0c;今天我们一起来把它盘明白。 1、深拷贝和浅拷贝介绍 深拷贝和浅拷贝都是对对象进行拷贝&#xff0c;其主要区别是&#xff0c;在对象拷贝时&#xff0c;对引用数据类型的处…

作者头像 李华
网站建设 2026/6/10 8:16:47

Python编程实战:函数与模块化编程及内置模块探索

引言在Python编程的世界里&#xff0c;函数与模块化编程是构建高效、可维护代码的基石。而Python丰富的内置模块&#xff0c;如math、os、sys、random等&#xff0c;更是为开发者提供了强大的工具库。本文将带你深入探索这些概念&#xff0c;通过实际例子展示如何在实际编程中运…

作者头像 李华
网站建设 2026/6/10 8:06:06

游戏 Agent 训练效率提升8倍的秘密:基于PPO算法的4步优化法

第一章&#xff1a;游戏 Agent 的 AI 训练概述在现代人工智能研究中&#xff0c;游戏环境成为训练智能体&#xff08;Agent&#xff09;的重要试验场。由于游戏具备规则明确、反馈即时和状态空间可控等特性&#xff0c;非常适合用于强化学习、模仿学习等AI训练方法的验证与优化…

作者头像 李华
网站建设 2026/6/10 8:14:01

vue和springboot框架开发的物业报修系统 社区维修分配系统 p7qs0n7

文章目录具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 同行可拿货,招校园代理 vue和springboot框架开发的物业报修系统 社区维修分配系统…

作者头像 李华