新一代包管理工具PDM

简介: 新一代包管理工具PDM

前言


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


关于 PDM


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


PDM 的特点


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


安装 PDM


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 服务了。


pdm run dev   # 在8001启动dev服务器
pdm run start # 在8000启动生产服务器
复制代码


总结


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


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

相关文章
|
4月前
|
IDE 开发工具 Python
新一代Python包管理工具来了
新一代Python包管理工具来了
|
7月前
|
IDE 安全 中间件
【瑞萨MCU】e2 studio 灵活配置软件包 FSP 安装
【瑞萨MCU】e2 studio 灵活配置软件包 FSP 安装
159 0
|
安全 Ubuntu Linux
新一代通用的Linux软件包管理工具
  1. 前言   snap和flatpak都是新一代跨Linux发行版的软件包管理技术,这两种下一代打包方法在本质上拥有相同的目标和特点:即不依赖于第三方系统功能库的独立包装。上一篇我们简单介绍了flatpak的原理,今天我们接着简要介绍snap的安全机制。   2. 简介   snap是Canoncial公司提出的新一代linux包管理工具,致力于将所有linux发行版上的包格式统一,做到“一次打包,到处使用”。目前snap已经可以在包括Ubuntu、Fedora、Mint等多个Linux发行版上使用。首先我们来了解下snap相关的各种名词:
601 0
|
缓存 开发工具 git
统信UOS系统开发笔记(六):提取在线安装软件后,提取其安装包,部署目标机使用离线软件包方式安装软件
前面搭建了基础环境,在使用统信UOS系统的相关行业也是不能上网的,但是可以传递压缩包,为了很好的方便相关从业人员工作,特将此种方式流程分享出来。(与国产银河麒麟不同)   本篇文章的重点就是离线安装,包括了在线安装,提取离线安装包,离线安装并完成测试验证。
|
存储 缓存 资源调度
pnpm技术体系之:高性能包管理工具
pnpm 是 performant npm(高性能的 npm),它是一款快速的,节省磁盘空间的包管理工具,同时,它也较好地支持了 workspace 和 monorepos。
pnpm技术体系之:高性能包管理工具
麒麟系统开发笔记(七):在线安装软件后,提取其安装包,部署目标机使用离线软件包方式安装软件
前面搭建了基础环境,在使用麒麟系统的相关行业多半是不能上网的,但是可以传递压缩包,为了很好的方便相关从业人员工作,特将此种方式分享出来。本篇文章的重点就是离线安装,包括了在线安装,提取离线安装包,离线安装并完成测试验证。本文以sshpass工具为示例。
麒麟系统开发笔记(七):在线安装软件后,提取其安装包,部署目标机使用离线软件包方式安装软件
|
存储 安全 Linux
绝了,这款P2P全平台的文件同步工具,开源且不依赖中心服务器
绝了,这款P2P全平台的文件同步工具,开源且不依赖中心服务器
绝了,这款P2P全平台的文件同步工具,开源且不依赖中心服务器
|
消息中间件 NoSQL 应用服务中间件
国产系统离线环境安装
arm64国产操作系统,无外网的情况下安装项目所需环境
72531 1

热门文章

最新文章