你好,我是坚持分享干货的 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 add
命令,它会自动更新 pyproject.toml
和 pdm.lock
文件,并安装依赖到你的项目中。
你可以指定依赖的名称、版本、来源等,也可以使用 -s
或 --section
选项来指定依赖的分组,如 dev
、test
等。例如:

要删除一个依赖,你可以使用 pdm remove
命令,它会自动更新 pyproject.toml
和 pdm.lock
文件,并卸载依赖。
你可以指定要删除的依赖的名称,也可以使用 -s
或 --section
选项来指定要删除的依赖的分组。例如:

要运行你的项目中的代码,你可以使用 pdm run
命令,它会在你的项目的环境中执行指定的命令。
你可以指定任何有效的命令,如 python
、pytest
、flake8
等。例如:

打包和发布 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 库,可以考虑关注下这个专栏哦。

- EOF -
文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~
推荐阅读 点击标题可跳转
回复下方「关键词」,获取优质资源
回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版
回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版
👇关注我的公众号👇
告诉你更多细节干货
欢迎围观我的朋友圈
👆每天更新所想所悟