Python PDM: 下一代Python包管理工具
Python PDM(Python Development Master)是一个现代化的Python包和依赖管理工具,支持最新的PEP(Python Enhancement Proposal)标准。本文将深入探讨PDM的特性、优势以及与其他类似工具的比较。
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值得你的关注和尝试。