Project Icon

pdm

全面支持PEP标准的Python包管理器

PDM是一款功能全面的Python包和依赖管理工具,完全遵循最新PEP标准。它具备快速依赖解析、PEP 517构建后端和PEP 621项目元数据支持等特性。PDM还提供灵活的插件系统、多功能用户脚本,以及Python解释器安装和集中式缓存选项。这些功能使PDM成为Python开发中高效且标准化的项目管理工具。

PDM

一个支持最新 PEP 标准的现代 Python 包和依赖管理器。 英文版说明

PDM 标志

文档 Twitter 关注 Discord

Github Actions PyPI codecov 打包状态 下载量 pdm 管理 trackgit-views

asciicast

PDM 是什么?

PDM 旨在成为下一代 Python 包管理工具。它最初是为个人使用而开发的。如果你觉得使用 PipenvPoetry 已经足够好,不想引入另一个包管理器,那就继续使用它们。但如果你觉得这些工具缺少某些功能,你可能会在 pdm 中找到一些有用的特性。

主要特点

  • 简单快速的依赖解析器,主要针对大型二进制分发包。
  • 一个 PEP 517 构建后端。
  • PEP 621 项目元数据。
  • 灵活强大的插件系统。
  • 多功能的用户脚本。
  • 使用 indygreg 的 python-build-standalone 安装 Python。
  • 可选的集中式安装缓存,类似于 pnpm

与其他替代方案的比较

Pipenv

Pipenv 是一个依赖管理器,它结合了 pipvenv,正如其名称所暗示的那样。它可以从非标准的 Pipfile.lockPipfile 安装包。然而,Pipenv 不处理任何与打包代码相关的包,因此它只适用于开发不可安装的应用程序(例如 Django 网站)。如果你是库开发者,你仍然需要 setuptools

Poetry

Poetry 以类似于 Pipenv 的方式管理环境和依赖,但它还可以构建包含你的代码的 .whl 文件,并且可以将 wheel 和源代码分发上传到 PyPI。它有一个漂亮的用户界面,用户可以通过插件自定义它。Poetry 使用 pyproject.toml 标准,但它不遵循指定元数据应如何在 pyproject.toml 文件中表示的标准(PEP 621),而是使用自定义的 [tool.poetry] 表。这部分是因为 Poetry 在 PEP 621 出现之前就已经存在了。

Hatch

Hatch 还可以管理环境,允许每个项目有多个环境。默认情况下,它为所有环境提供一个中心位置,但也可以配置将项目的环境放在项目根目录中。它可以管理包,但不支持锁文件。它还可以用于打包项目(使用符合 PEP 621 的 pyproject.toml 文件)并上传到 PyPI。

本项目

PDM 可以在项目和集中位置管理虚拟环境(venvs),类似于 Pipenv。它从标准化的 pyproject.toml 文件中读取项目元数据,并支持锁文件。用户可以通过插件添加额外功能,这些插件可以作为分发包上传共享。

与 Poetry 和 Hatch 不同,PDM 不限于特定的构建后端;用户可以自由选择任何他们喜欢的构建后端。

安装

PDM 需要 Python 3.8 或更高版本。

通过安装脚本

与 Pip 类似,PDM 提供了一个安装脚本,可以将 PDM 安装到隔离环境中。

Linux/Mac 系统

curl -sSL https://pdm-project.org/install-pdm.py | python3 -

Windows 系统

(Invoke-WebRequest -Uri https://pdm-project.org/install-pdm.py -UseBasicParsing).Content | py -

出于安全考虑,您应该验证 install-pdm.py 的校验和。 可以从 install-pdm.py.sha256 下载校验和。

安装程序会将 PDM 安装到用户站点,具体位置取决于系统:

  • Linux:$HOME/.local/bin
  • MacOS:$HOME/Library/Python/<version>/bin
  • Windows:%APPDATA%\Python\Scripts

您可以向脚本传递额外选项来控制 PDM 的安装方式:

用法:install-pdm.py [-h] [-v VERSION] [--prerelease] [--remove] [-p PATH] [-d DEP]

可选参数:
  -h, --help            显示帮助信息并退出
  -v VERSION, --version VERSION | 环境变量:PDM_VERSION
                        指定要安装的版本,或使用 HEAD 从主分支安装
  --prerelease | 环境变量:PDM_PRERELEASE    允许安装预发布版本
  --remove | 环境变量:PDM_REMOVE            移除 PDM 安装
  -p PATH, --path PATH | 环境变量:PDM_HOME  指定安装 PDM 的位置
  -d DEP, --dep DEP | 环境变量:PDM_DEPS     指定额外依赖,可多次使用

您可以在脚本后传递这些选项,或设置相应的环境变量值。

其他安装方法

如果您使用 macOS 并使用 homebrew,可以通过以下命令安装:

brew install pdm

如果您使用 Windows 并使用 Scoop,可以通过以下命令安装:

scoop bucket add frostming https://github.com/frostming/scoop-frostming.git
scoop install pdm

否则,建议使用 pipx 在隔离环境中安装 pdm

pipx install pdm

或者您可以将其安装到用户站点:

pip install --user pdm

使用 asdf-vm

asdf plugin add pdm
asdf install pdm latest

快速入门

初始化新的 PDM 项目

pdm init

按照指南回答问题,一个带有 pyproject.toml 文件的 PDM 项目就准备就绪了。

安装依赖

pdm add requests flask

您可以在同一命令中添加多个依赖。稍后,查看 pdm.lock 文件,了解每个包的锁定情况。

徽章

通过在 README.md 中包含以下 Markdown 代码,告诉人们您的项目正在使用 PDM:

[![pdm-managed](https://img.shields.io/endpoint?url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Fpdm-project%2F.github%2Fbadge.json)](https://pdm-project.org)

pdm-managed

打包状态

打包状态

PDM 生态系统

Awesome PDM 是一个精选的 PDM 插件和资源列表。

赞助商

致谢

本项目深受 pyflowpoetry 的启发。

许可证

本项目采用 MIT 许可证开源,详情请参阅 LICENSE 文件。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号