简介#
如前所述,PDM 是一个支持最新 PEP 标准的现代 Python 包和依赖项管理器。但它不仅仅是一个包管理器。它可以在各个方面提升您的开发工作流程。
功能亮点#
- 简单快速的依赖解析器,主要用于大型二进制发行版。
- 根据 PEP 517 规范构建后端。
- 根据 PEP 621 规范解析项目元数据。
- 灵活而强大的插件系统。
- 多功能用户脚本。
- 使用 indygreg's python-build-standalone进行安装其他版本的 Python。
- 选择加入集中式安装缓存,参考 pnpm。
提示
- PEP 517 是 Python Enhancement Proposal 的缩写,它定义了 Python 包的构建系统接口。在 PEP 517 中,构建后端负责实际执行项目构建的工作。
- 构建后端(build backend)指的是用于构建 Python 项目的工具或库。
- PEP 621 是 Python Enhancement Proposal 的一部分,它提出了关于 Python 项目元数据的新标准。元数据是指关于项目的信息,比如项目的名称、版本、作者、依赖项等等。
安装#
PDM 需要安装 Python 3.8+。它适用于多个平台,包括 Windows、Linux 和 macOS。
Note
你仍然可以让你的项目在较低的 Python 版本上工作,请阅读如何做到这一点 点击这里。
推荐安装方式#
PDM 需要 python 版本 3.8 或更高版本。
与 Pip 一样,PDM 提供了一个安装脚本,用于将 PDM 安装到隔离环境中。
1 |
|
1 |
|
出于安全原因,您应验证 install-pdm.py
文件的校验和。
您可以从 install-pdm.py.sha256下载该文件。
例如,在 Linux/Mac 上:
1 2 3 4 |
|
安装程序会将 PDM 安装到用户家目录中,位置取决于系统:
$HOME/.local/bin
Unix 系统$HOME/Library/Python/<version>/bin
MacOS 系统%APPDATA%\Python\Scripts
Windows 系统
您可以将其他参数传递给脚本来控制 PDM 的安装方式:
1 2 3 4 5 6 7 8 9 10 |
|
您可以在运行的安装脚本命令的后面传递选项,也可以设置环境变量 env var 值。
其他安装方式#
1 |
|
1 2 |
|
1 |
|
安装 GitHub 存储库的最新版本。 安装前确保您已在系统上安装了 Git LFS。
1 |
|
要安装具有所有功能的 PDM:
1 |
|
要想了解 pipx 另请参阅: https://pypa.github.io/pipx/
1 |
|
假设您已经安装了 asdf。
1 2 3 |
|
通过将 Pyprojectx 包装器脚本复制到一个项目中,您可以将 PDM 安装为该项目中的(npm 样式)开发依赖项。这允许不同的项目/分支使用不同的 PDM 版本。
要 初始化一个新的或现有的项目 , cd 到项目文件夹中,然后执行对应系统的脚本:
1 2 |
|
1 2 |
|
使用此方法安装 pdm 时, 需要通过 pw
包装器运行所有 pdm
命令:
1 |
|
更新 PDM 版本#
1 |
|
各系统构建版本情况#
Shell 命令补全#
PDM 支持为 Bash、Zsh、Fish 或 Powershell 生成补全脚本。以下是每个 shell 的一些常见的储存位置:
1 |
|
1 2 |
|
Oh-My-Zsh:
1 2 |
|
然后确保在 ~/.zshrc 中启用了 pdm 插件
1 |
|
1 2 3 4 5 6 7 8 9 10 |
|
Virtualenv 和 PEP 582#
除了 virtualenv 管理之外,PDM 还提供对 PEP 582 的实验性支持作为选择加入功能。 尽管 Python 指导委员会拒绝了 PEP 582,但您仍然可以使用 PDM 对其进行测试。
要了解有关这两种模式的更多信息, 请参阅有关使用 Working with virtualenv 和 Working with PEP 582 使用 PEP 582 的相关章节。
PDM 生态系统#
Awesome PDM 是精选的 PDM 插件和资源列表。