前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python新一代包管理工具-PDM

Python新一代包管理工具-PDM

作者头像
Python研究所
发布2022-06-17 08:23:37
发布2022-06-17 08:23:37
2.2K00
代码可运行
举报
文章被收录于专栏:大飞的部落阁大飞的部落阁
运行总次数:0
代码可运行

前言

想信很多同学都知道包管理工具,NodenpmJavamavenPythonpip。但是当我们有多个项目的时候,Python 通常会使用虚拟环境来隔离。但是之前的虚拟环境工具个人感觉都不好用,直到我发现了 PDM,用它来管理虚拟环境体验很好。特意推荐给大家。

关于 PDM

PDM 全名 Python Development Master。其基于文件夹,不需要单独创建 virtualenv。它的管理方式和 npm 挺像。

PDM 的特点

  1. 本地包安装程序和运行程序,不涉及 virtualenv
  2. 简单且相对快速的依赖解析程序,主要用于大型二进制发行版。
  3. 后端构建。
  4. 项目元数据。
  5. 灵活而强大的插件系统。
  6. 选择集中安装缓存,如 npm

安装 PDM

代码语言:javascript
代码运行次数:0
运行
复制
pip install pdm

呆猫

使用 PDM 初始化项目

使用 PDM 初始化项目很简单,我们只需要创建一个文件夹,然后进入文件夹中执行 pdm init 命令即可完成初始化。

初始化的时候,我们需要选择是否上传项目到 Pypi、开源协议、作者信息、Python 版本要求。

初始化完成后项目中会生成.pdm.tomlpyproject.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

这样配置后,我们就可以使用 startdev 分别在不同的端口启动 flask 服务了。

代码语言:javascript
代码运行次数:0
运行
复制
pdm run dev   # 在8001启动dev服务器
pdm run start # 在8000启动生产服务器

总结

pdm 的功能远远不止上面我们介绍的,通过上面的介绍我个人认为 PDM 是目前 Python 包管理中比较易用,好用的一款。而且其学习了 npm 的优秀经验,真正做到了取精去槽。

希望我的分享能够让你对 Python 的包管理和虚拟环境有重新的认识。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 关于 PDM
    • PDM 的特点
    • 安装 PDM
  • 呆猫
    • 使用 PDM 初始化项目
    • 给项目添加依赖包
    • 查看项目依赖包
    • 对于已有的项目进行初始化
    • 项目管理命令
    • PDM 快捷指令
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档