目录
requirements.txt的局限性
PDM 的优势
如何使用 PDM
安装 PDM
初始化项目
添加依赖
管理依赖
示例代码
初始化项目并添加依赖
编写简单的 Flask 应用
运行应用
PDM高级功能
多环境管理
脚本管理
发布包
在 Python 项目中管理依赖项,最常见的方式是使用 requirem)ents.txt
文件。但最近有一种新的包管理工具——PDM (Python Development Master),它提供了更现代化、更便捷的依赖管理方式。
requirements.txt的局限性
requirements.txt
是一个纯文本文件,它列出了所有依赖包的名称和版本。虽然简单,但它有以下几个缺点:
-
• 缺乏灵活性:无法方便地处理不同环境下的依赖。
-
• 手动管理麻烦:需要手动更新和管理依赖,容易出错。
-
• 依赖解析不够智能:难以应对复杂的依赖树。
PDM 的优势
PDM基于PEP 582规范,采用了一种称为“局部包目录”的新方法。通过在项目目录下创建__pypackages__
文件夹,PDM将所有的包安装到这个文件夹中,从而实现环境隔离。这样,每个项目都有独立的依赖环境,不会相互干扰。
它的优势包括:
-
• 自动化管理:PDM 可以自动解析和管理依赖,减少手动操作。
-
• 环境隔离:每个项目都有独立的包环境,避免依赖冲突。
-
• 支持 PEP 582:无需虚拟环境,依赖安装在项目的
__pypackages__
目录下。
如何使用 PDM
安装 PDM
首先,我们需要安装 PDM。可以使用 pip
或直接从源码安装:
pip install pdm
初始化项目
在项目目录下运行以下命令来初始化 PDM 项目:
pdm init
这将创建一个 pyproject.toml
文件,用于管理项目的元数据和依赖。
添加依赖
使用以下命令添加项目依赖:
pdm add requests
PDM 会自动将 requests
依赖添加到 pyproject.toml
文件中,并安装到项目的 __pypackages__
目录下。
管理依赖
PDM 还提供了一些方便的命令来管理依赖:
-
• 更新依赖:
pdm update
-
• 移除依赖:
pdm remove package_name
-
• 列出依赖:
pdm list
示例代码
我们来看看一个实际的示例代码,展示如何使用 PDM 管理依赖:
初始化项目并添加依赖
pdm init
pdm add flask
编写简单的 Flask 应用
创建一个名为 app.py
的文件,写入以下代码:
from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello():return "Hello, PDM!"if __name__ == '__main__':app.run(debug=True)
运行应用
使用以下命令运行应用:
pdm run python app.py
打开浏览器,访问 http://127.0.0.1:5000
,你将看到 "Hello, PDM!" 的欢迎页面。
PDM高级功能
多环境管理
PDM支持多环境管理,例如开发环境和生产环境:
pdm add requests --dev
pdm add gunicorn --prod
脚本管理
你可以在pyproject.toml
中定义常用脚本:
[tool.pdm.scripts]
start = "python app.py"
然后使用命令运行:
pdm run start
发布包
PDM还支持包发布,你可以轻松将你的项目发布到PyPI:
pdm publish
requirements.txt
只提供了静态依赖管理,这意味着你需要手动更新每个依赖包的版本。而PDM则引入了动态依赖管理,它可以根据项目需求自动调整依赖版本。
PDM 作为一种现代化的依赖管理工具,提供了更灵活、更便捷的依赖管理方式。通过 PDM,你可以摆脱 requirements.txt
的束缚,更高效地管理 Python 项目依赖。
用Python比较对象==与is,你还在用==?out啦,来看这个!-CSDN博客 |
httpcore,一个小巧灵活的 python 库-CSDN博客 |
Python pickle,网络数据传输就得这么玩-CSDN博客 |