新一代Python包管理工具:使用pdm实现项目级环境隔离

码头散步
码头散步
发布时间:2026-10-15| 6人浏览过
原创

本文介绍一款受PEP582启发的Python包管理工具pdm。详细讲解pdm的安装方法、项目初始化流程、第三方库安装及本地隔离库的使用。通过pycharm集成与pdm sync命令,实现无需传统虚拟环境的项目级依赖管理,提升开发效率与环境一致性。

1 简介

谈及Python的包管理,pip和conda是许多开发者熟悉的经典工具。然而,近期出现了一款名为pdm的新型Python包管理工具。它借鉴了PEP582规范以及Node.js中管理库文件的方式,旨在通过「本地项目库」的形式,帮助用户更便捷地创建和管理独立的Python运行环境。

2 使用pdm管理项目库环境

2.1 pdm的安装

pdm提供了多种安装途径,本文采用官方推荐的方式进行部署:

python -m pip install --user pipx
python -m pipx ensurepath

随后关闭当前终端窗口并重新打开一个新的终端会话,接着输入以下命令继续操作:

pipx install pdm

若终端输出显示如下内容,即表明pdm已成功安装完毕:

2.2 pdm的基础使用

在使用pdm以当前目录作为项目仓库创建新项目时,需根据项目需求,先切换至目标Python版本的环境,再执行pdm init命令进行初始化。以Python 3.7版本为例,操作步骤如下:

在初始化过程中,根据项目的实际情况逐一填写各项提示问题即可:

cd C:\Users\pengz\Desktop\当期博客工作台\pdm-demo
conda activate dash-apps
pdm init

完成上述步骤后,当前目录下会生成一个pyproject.toml文件,该文件记录了当前pdm项目的基本配置参数:

接下来,可根据项目实际需求,使用pdm add命令安装指定的单个或多个第三方Python库。以安装flask为例(其中第一行命令用于配置国内PyPI镜像源),操作如下:

pdm config pypi.url https://pypi.douban.com/simple/
pdm add -v flask flask-login

安装完成后,当前目录下会出现__pypackages_目录,此前安装的库文件均隔离存放于此目录下,其结构类似于Node.js中的node_modules目录:

这种结构也符合PEP582所倡导的项目目录规范:

foo
    __pypackages__
        3.7
            lib
                bottle
    myscript.py

由此实现了项目级别的环境隔离效果,且无需创建额外的虚拟环境。若需在IDE中使用pdm项目下的本地隔离库执行程序,以PyCharm为例,打开pdm项目为PyCharm工程后,找到如图所示位置的lib文件夹,将其标记为Sources Root即可。同时,请确保解释器设置为pdm init初始化时所对应的环境:

与终端中原始环境的执行结果进行对比,可以发现成功实现了环境隔离。这是因为pdm项目的__pypackages__中的包会在环境本身的site-packages之前被载入,从而更有效地隔离包依赖环境:

若需在其他路径或其他机器上还原某个pdm项目,仅需将pyproject.toml与pdm.lock文件拷贝至目标目录,随后在对应目录下执行pdm sync -v命令即可。这一过程非常便捷,功能类似于npm install配合package.json的使用方式:

至此,关于新一代Python包管理工具pdm的介绍便告一段落。如需了解更多相关内容,请搜索本站往期文章或继续浏览后续文章。感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。