pdm,一个超强的 Python 包管理工具

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

你是否厌倦了使用 pip 和 virtualenv 来管理你的 Python 项目?你是否想要一个更现代、更方便的 Python 包和依赖管理工具?如果是的话,你可能会对 pdm 感兴趣。

pdm 是一个支持最新 PEP 标准的 Python 包和依赖管理工具。它不仅仅是一个包管理器,它还可以提升你的开发工作流程的各个方面。它的最大优势是它可以像 npm 那样安装和管理包,而不需要创建虚拟环境!

我个人体验下来的感觉,确实非常丝滑!

在这篇文章中,我将向你介绍 pdm 的主要优势、特点和用法,帮助你快速上手和使用 pdm 来管理你的 Python 项目。

概要

这篇文章的主要结构如下:

  • 首先,我会介绍 pdm 主要优势和特点

  • 然后,我会介绍 pdm 的安装方法和基本配置。

  • 然后,我会展示如何使用 pdm 来创建、初始化和管理一个 Python 项目,包括添加、删除、更新等。

  • 最后,我会说明如何使用 pdm 来打包和发布你的 Python 项目,包括生成 wheel 文件,上传到 PyPI 等。

主要优势

通过使用 pdm,你可以享受以下几个好处:

  • pdm 使用 pyproject.toml 文件作为项目的唯一配置文件,它遵循 PEP 518 的标准,使得项目的元数据和依赖信息更加清晰和规范

  • pdm 使用 PEP 582 的机制,自动管理项目的虚拟环境,无需手动激活或切换,也无需担心虚拟环境的路径和名称,只需在项目的文件夹中运行 pdm 命令即可。

  • pdm 使用 PEP 621 的格式,记录项目的元数据,使得项目更容易被打包和发布,也更容易被其他工具识别和使用。

  • pdm 使用一个高效的依赖解析算法,可以快速地找到项目的最佳依赖组合,避免版本冲突和不兼容的问题,同时,它也可以生成一个精确的锁文件,保证项目的依赖状态的一致性和可复现性。

  • pdm 提供了一些实用的功能和选项,比如支持多种 Python 版本的管理,支持多种源的切换,支持自定义的脚本和插件,支持导入和导出其他格式的配置文件,等等。

准备工作

在开始使用 pdm 之前,你需要满足以下条件:

  • 你的系统上已经安装了 Python 3.8 或更高版本。你可以使用 python --version 命令来检查你的 Python 版本。

  • 你的系统上已经安装了 curl 工具,用于下载 pdm 的安装脚本。你可以使用 curl --version 命令来检查你的 curl 版本。

当然,其实你也可以通过 pip 或 pipx 等其他包管理工具安装 pdm。

安装和配置 pdm

pdm 提供了一个安装脚本,可以将 pdm 安装到一个隔离的环境中,类似于 pip。你可以使用以下命令来运行安装脚本:

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

安装完成后,你可以使用  pdm --version  命令来检查 pdm 的版本。你也可以使用  pdm --help  命令来查看 pdm 的帮助信息。

pdm 的默认安装位置取决于你的系统:

  • 对于 Unix 系统,是  $HOME/.local/bin  目录。

  • 对于 Windows 系统,是  %APPDATA%\Python\Scripts  目录。

你可以通过设置  PDM_HOME  环境变量来修改 pdm 的安装位置。你也可以通过设置  PDM_BIN_PATH  环境变量来修改 pdm 的可执行文件的位置。

pdm 的配置文件是  ~/.pdm/config.toml,你可以在这里修改 pdm 的一些全局选项,如缓存目录、源地址、代理设置等。你也可以在每个项目的  pyproject.toml  文件中添加  [tool.pdm]  部分来修改 pdm 的一些项目级别的选项,如 Python 版本、依赖分组等。

创建和管理 Python 项目

要使用 pdm 来创建一个 Python 项目,你可以使用  pdm init  命令,它会在当前目录下生成一个  pyproject.toml  文件,用于存储项目的元数据和依赖信息。

你可以按照提示输入一些基本信息,如项目名称、版本、许可证、作者等,也可以直接使用默认值。例如:

pdm,一个超强的 Python 包管理工具_第1张图片

这时,你的项目文件目录大概长这样:

pdm,一个超强的 Python 包管理工具_第2张图片

要添加一个依赖到你的项目中,你可以使用  pdm add  命令,它会自动更新  pyproject.toml  和  pdm.lock  文件,并安装依赖到你的项目中。

你可以指定依赖的名称、版本、来源等,也可以使用  -s  或  --section  选项来指定依赖的分组,如  devtest  等。例如:

pdm,一个超强的 Python 包管理工具_第3张图片

要删除一个依赖,你可以使用  pdm remove  命令,它会自动更新  pyproject.toml  和  pdm.lock  文件,并卸载依赖。

你可以指定要删除的依赖的名称,也可以使用  -s  或  --section  选项来指定要删除的依赖的分组。例如:

pdm,一个超强的 Python 包管理工具_第4张图片

要运行你的项目中的代码,你可以使用  pdm run  命令,它会在你的项目的环境中执行指定的命令。

你可以指定任何有效的命令,如  pythonpytestflake8  等。例如:

pdm,一个超强的 Python 包管理工具_第5张图片

打包和发布 Python 项目

要打包你的 Python 项目,你可以使用 pdm build 命令,它会根据 pyproject.toml 文件中的元数据和依赖信息,生成一个 wheel 文件和一个 sdist 文件,放在 dist 目录下。

你可以使用 -d--dest 选项来指定输出目录,也可以使用 -s--sdist-only 选项来只生成 sdist 文件。例如:

$ pdm build
✔ Build sdist successful
✔ Build wheel successful
$ ls dist
test-pdm-0.0.0-py3-none-any.whl  test-pdm-0.0.0.tar.gz

要发布你的 Python 项目,你可以使用  pdm publish  命令,它会将你的项目上传到 PyPI 或其他指定的源。你需要先在  ~/.pypirc  文件中配置你的源信息,如用户名、密码、令牌等。

如果事先没有配置,pdm 会提示让你输入对应信息:

> pdm publish
Building sdist...
Built sdist at C:/Devel/pdm-demo/dist\pdm-demo-0.1.0.tar.gz
Building wheel...
Built wheel at C:/Devel/pdm-demo/dist\pdm_demo-0.1.0-py3-none-any.whl
Username:

总结

在本文中,我向你介绍了 pdm 的基本用法和优势,包括如何安装 pdm,如何使用 pdm 创建和管理 Python 项目,如何使用 pdm 安装、更新、卸载项目的依赖包。

希望你能从中学到一些有用的知识,也希望你能尝试使用 pdm 来管理你的 Python 项目,相信你会发现它是一个非常强大和方便的工具。

如果你对本文有任何的意见或建议,欢迎在评论区留言,或者直接联系我。如果你喜欢本文,也请不要吝啬你的点赞和分享,让更多的人知道 pdm 的魅力。


如果大家想进一步了解学习更多 Python 库,可以考虑关注下这个专栏哦。

pdm,一个超强的 Python 包管理工具_第6张图片

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

关注我的公众号

告诉你更多细节干货

pdm,一个超强的 Python 包管理工具_第7张图片

欢迎围观我的朋友圈

每天更新所想所悟

你可能感兴趣的:(python,开发语言)