PDM:管理 Python 包的更智能方法
现代 Python 开发人员使用虚拟环境或“venvs”将他们的项目和依赖项分开。然而,虚拟环境的缺点之一是项目目录的大小。每个 venv 可以占用 10MB 或更多的磁盘空间——这只是基本安装,不包括安装到项目中的库。
但是现在有一个语言功能和一个包管理系统,可以减少项目占用空间的大小。 从 Python 3.8 开始,Python 具有一项功能,可以自动识别项目中是否存在子目录,该子目录存储与该项目专有关联的包。
在 PEP 582 中编码,Python 允许 __pypackages__ 目录包含特定于版本的版本可以在 Python 的基本安装包之前导入的包,甚至是 venv。 直到最近,大多数 Python 开发人员仅“手动”使用 PEP 582 样式的包存储。但是最近开发的包管理工具 PDM(Python Development Master 的缩写)允许您使用 PEP 582 存储指南将包安装到项目中。
结果是项目更小、更便携且处理起来更不尴尬和。 PDM 安装在 Python 3.7 或更高版本中。
最好将 PDM 安装到 Python 安装访问的用户目录中,而不是 Python 安装本身。 PDM 文档解释了如何执行此操作。或者, pip install --user pdm 是获得相同结果的可靠、自动方式。
请注意,设置 PDM 的一个关键部分是启用 PEP 582 行为。这可以自动完成,也可以通过手动修改 PYTHONPATH 来完成。 正确安装 PDM 后,您应该能够在命令行上运行命令 pdm。
如果您在 Windows 上处理多个 Python 安装,您可以(并且应该)使用 py
要设置项目以使用 PDM,请转到控制台中项目目录的根目录并键入 pdm init。系统会询问您一些关于项目的问题,之后您的项目将有一个 pyproject.toml 文件和一个 __pypackages__ 目录。
如果您使用源代码控制(例如 Git),请确保在存储库中包含 pyproject.
toml,但排除 __pypackages__ 目录和 PDM 生成的 .lock 文件。 要将依赖项添加到项目,请使用 pdm add
您可以列出多个依赖项,并且应该使用 PEP 508 中的标准指定它们。换句话说,它们应该看起来像标准 requirements.txt 文件。
要删除依赖项,请使用 pdm remove
为确保根据需要安装所有依赖项,您可以使用以下两个命令之一: 默认情况下,安装到 PDM 管理的项目的任何依赖项都会在安装时不指明它们在项目中的功能。例如,如果您使用 pdm add black 安装黑色代码格式化程序,PDM 不会将其识别为专门用于开发的依赖项而不是用于运行时的依赖项。 如果您想为特定用途标记依赖项,您可以使用 -dG(“依赖组”)选项以及组名来对它们进行分组。
例如,我们可以使用 pdm add -dG dev black 到将黑色安装到标记为 dev 的依赖项子组中。 您还可以使用 pdm add -d
PDM 控制的依赖项可以通过键入 pdm update 一次全部更新,通过使用包名单独更新 (pdm update
如果要删除不再需要的软件包,请运行 pdm sync --clean。 PEP 582 仍然相对较新。因此,使用 PDM 有几个注意事项。
首先,许多 IDE 不会自动检测或使用项目中的 __pypackages__ 目录。 PDM 文档解释了如何配置各种编辑器来识别项目的目录。 其次,一些在其内部构建和安装过程中存在过时的软件包可能无法使用 PDM 正确设置。
如果发生这种情况,您可能需要使用 pip install -t 手动将它们安装到您的 __pypackages__ 目录,它们不会可通过 PDM 进行管理。
Yorumlar
Yorum Gönder