前言
想信很多同学都知道包管理工具,Node
的 npm
、Java
的 maven
、Python
的 pip
。但是当我们有多个项目的时候,Python
通常会使用虚拟环境来隔离。但是之前的虚拟环境工具个人感觉都不好用,直到我发现了 PDM,用它来管理虚拟环境体验很好。特意推荐给大家。
关于 PDM
PDM
全名 Python Development Master
。其基于文件夹,不需要单独创建 virtualenv
。它的管理方式和 npm
挺像。
PDM 的特点
- 本地包安装程序和运行程序,不涉及
virtualenv
。 - 简单且相对快速的依赖解析程序,主要用于大型二进制发行版。
- 后端构建。
- 项目元数据。
- 灵活而强大的插件系统。
- 选择集中安装缓存,如
npm
。
安装 PDM
pip install pdm 复制代码
呆猫
使用 PDM 初始化项目
使用 PDM
初始化项目很简单,我们只需要创建一个文件夹,然后进入文件夹中执行 pdm init
命令即可完成初始化。
初始化的时候,我们需要选择是否上传项目到 Pypi
、开源协议、作者信息、Python
版本要求。
初始化完成后项目中会生成.pdm.toml
、pyproject.toml
两个模板文件,而我们主要关注pyproject.toml
。
给项目添加依赖包
和大多数的包管理工具一样,PDM
也是用 add
指令。
添加 requests
的过程:
添加完成后,和 npm
一样 PDM
也会在配置文件中写入安装的依赖包信息。
查看项目依赖包
对于已有的项目进行初始化
很多时候,我们会拉取别人的项目学习,对于这种项目进行依赖的安装该如何进行呢?npm
是直接使用 npm i
来做的。
为了模拟这种场景,我们手动向配置文件中增加一个 flask
的包依赖。
然后执行 pdm install 即可
不得不说,
PDM
体验是真的不错。
项目管理命令
PDM
为我们提供了很多方法让我们来管理项目。
指令 | 作用 |
pdm info | 查看项目信息 |
pdm config install.cache on | 修改项目配置 |
pdm export -o requirements.txt | 导出依赖 |
更多内容见:https://pdm.fming.dev/
PDM 快捷指令
和 npm run
一样,pdm
也支持类似功能。假设我们想要启动 flask
开发服务器,我们将 flask
应用移动到项目根路径,然后使用 pdm run flask run -p 5321
即可。
当然我们也可以在 pyproject.toml
配置 pdm script
,这样就可以像 npm
一样去使用不同的指令起启动不同的服务器了。
我们就将上面的 flask
配置为 pdm script
。
这样配置后,我们就可以使用 start
和 dev
分别在不同的端口启动 flask
服务了。
pdm run dev # 在8001启动dev服务器 pdm run start # 在8000启动生产服务器 复制代码
总结
pdm
的功能远远不止上面我们介绍的,通过上面的介绍我个人认为 PDM
是目前 Python
包管理中比较易用,好用的一款。而且其学习了 npm
的优秀经验,真正做到了取精去槽。
希望我的分享能够让你对 Python
的包管理和虚拟环境有重新的认识。