Python PDM: 下一代Python包管理工具

Python PDM(Python Development Master)是一个现代化的Python包和依赖管理工具,支持最新的PEP(Python Enhancement Proposal)标准。本文将深入探讨PDM的特性、优势以及与其他类似工具的比较。

Python PDM: 下一代Python包管理工具

PDM特性亮点

PDM致力于成为下一代Python包管理工具,具有以下特性:

  • 简单快速的依赖解析器:主要用于处理大型二进制分发。
  • PEP 517构建后端:支持PEP 517标准,实现项目构建的高度灵活性。
  • PEP 621项目元数据:采用PEP 621标准,规范项目元数据的表示。
  • 灵活强大的插件系统:支持用户通过插件扩展功能。
  • 可变的用户脚本:用户可以通过脚本定制化操作。
  • 选择性的集中式安装缓存:类似于pnpm,支持可选的集中式安装缓存。

与其他工具的比较

Pipenv

Pipenv是一个将pip和venv结合在一起的依赖管理器。它可以从非标准的Pipfile.lock或Pipfile中安装软件包。然而,Pipenv不处理与代码打包相关的任何软件包,因此仅适用于开发不可安装应用程序(例如Django站点)。

Poetry

Poetry以类似于Pipenv的方式管理环境和依赖项,但它还可以构建包含您的代码的.whl文件,并且可以将.wheels和源分发上传到PyPI。它具有良好的用户界面,并允许用户通过插件进行自定义。不过,Poetry使用pyproject.toml标准,但它没有遵循pyproject.toml文件中元数据应该如何表示的标准(PEP 621),而是使用自定义的[tool.poetry]表。

Hatch

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

安装方法

PDM要求Python版本在3.8及以上。通过以下方式安装:

安装脚本

在Linux/Mac上:

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

在Windows上(使用PowerShell):

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

为了安全起见,应验证install-pdm.py的校验和,可以从install-pdm.py.sha256下载。

安装脚本将PDM安装到用户站点,位置取决于系统:

  • 对于Unix系统:$HOME/.local/bin
  • 对于Windows系统: %APPDATA%\Python\Scripts

可以通过传递附加选项来控制安装:

python install-pdm.py --help

或者通过设置环境变量值。

其他安装方法

如果使用macOS并希望使用Homebrew安装PDM,可以运行:

brew install pdm

结语

总的来说,PDM是一个灵活、强大的Python包管理工具,具有先进的特性和与其他工具的比较优势。无论是对于大型二进制分发、构建后端的需求,还是对于灵活插件系统和可变用户脚本的追求,PDM都展现出了其独特的魅力。如果你正在寻找下一代Python包管理工具,PDM值得你的关注和尝试。