python基础语法学习: requirements.txt

文章目录

  • requirements.txt
    • [requiremtnes 长什么样?](#requiremtnes 长什么样?)
    • [生成 requirements.txt](#生成 requirements.txt)
      • [方法一: 手动写](#方法一: 手动写)
        • [方法二: 自动导出当前环境](#方法二: 自动导出当前环境)
        • [方法四: 只导出直接依赖](#方法四: 只导出直接依赖)
    • 实际工作流

requirements.txt

requirements.txt 是一个纯文本文件 ,用来记录一个 Python 项目所依赖的第三方包及其版本。它的作用是让其他人(或另一台机器)能够一键复现项目所需的运行环境。

bash 复制代码
pip install -r requirements.txt

一行命令,就能把所有依赖装好。

requiremtnes 长什么样?

最简单的形式,每行一个包名:

复制代码
requests
flask
numpy

带版本约束:

复制代码
requests==2.31.0
flask>=3.0.0
numpy~=1.26.0

还可以加注释和空行:

复制代码
# Web 框架
flask==3.0.0

# 数据处理
pandas==2.2.0
numpy==1.26.4

版本约束符号

写法 含义 示例
== 精确等于 flask==3.0.0
>= 大于等于 numpy>=1.20
<= 小于等于 numpy<=2.0
~= 兼容版本(推荐) numpy~=1.26.0 等价于 >=1.26.0, ==1.26.*
!= 排除某版本 flask!=3.0.1
> < 严格大于/小于 django>4.0
不写 装最新版 requests

~= 是最实用的 :它允许补丁版本更新(修 bug),但不允许次版本升级(避免破坏性变更)。比如 ~=1.26.0 会装 1.26.11.26.9,但不会装 1.27.0

组合约束用逗号:

复制代码
django>=4.2,<5.0

生成 requirements.txt

方法一: 手动写

直接写出你确定要用的包,推荐用 == 锁定版本

方法二: 自动导出当前环境
objc 复制代码
pip freeze > requirements.txt

pip freeze 会列出当前虚拟环境中所有已经安装的包 (包括间接依赖), 输出成 包名 == 格式格式

生成的内容可能很长:

例如:

复制代码
blinker==1.7.0
click==8.1.7
Flask==3.0.0
itsdangerous==2.1.2
Jinja2==3.1.3
MarkupSafe==2.1.5
Werkzeug==3.0.1

注意:这会包含所有间接依赖,环境迁移最保险,但文件不"干净"。

方法四: 只导出直接依赖

用 poetry / pipenv 管理

现代工具会分开管理 "直接依赖" 和 "锁定文件"

objc 复制代码
# Poetry
poetry add requests
poetry export -f requirements.txt --output requirements.txt

实际工作流

复制代码
# 1. 创建虚拟环境
python -m venv venv

# 2. 激活(Linux/Mac)
source venv/bin/activate
# Windows
venv\Scripts\activate

# 3. 安装依赖
pip install -r requirements.txt

# 4. 开发中装了新包
pip install requests

# 5. 更新 requirements.txt
pip freeze > requirements.txt
相关推荐
程序员清风41 分钟前
FastAPI 入门:用 Python 快速开发现代后端服务
python·oracle·fastapi
XiaoYu1__1 小时前
JavaGUI文件管理系统开发实战:从静态展示到动态交互的演进
java·开发语言
SunnyDays10111 小时前
使用 Python 提取 Word 文档中的表格数据
python·word
for_ever_love__1 小时前
python基础语法学习: 动态类型
开发语言·python·学习
霸道流氓气质1 小时前
MCP(Model Context Protocol)核心概念与Java SDK集成
java·开发语言
企查查数据服务1 小时前
全军禁入下客商准入风控,关联图谱与穿透核查
大数据·开发语言·数据库·php
troy1281 小时前
分布式系统框架选型指南:主流框架优缺点深度对比
python·django·pygame
PC2005-cloud1 小时前
DSH 白嫖指南:接入 Command Code Go、WorkBuddy 与 Trae 的免费额度
开发语言·后端·golang
129Lab2 小时前
BMS算法快速原型开发:AI辅助实现扩展卡尔曼滤波(EKF)SOC估算从理论到代码落地
python·嵌入式开发·bms·卡尔曼滤波·电池管理系统·soc估算