SpringBoot 2.x 实战仿B站高性能后端项目

243 阅读3分钟

SpringBoot 2.x 实战仿B站高性能后端项目

新一代的 Python 包管理工具 -- PDM

PDM 是一个新的 Python 的包管理器,或许你还未知晓它的存在,但实践上PDM 曾经降生两年,并在 2021 年发布 1.0 版本,目前最高的版本是 1.12.8。

在刚听到 PDM 时,我下认识以为它是 Python Development Manager,又一个和 Pipenv 和 Poetry 一样换汤不换药的虚拟环境管理工具。

不断到我翻到了作者的博客,才晓得 PDM 的全称是 Python Development Master,比我想像的还要牛逼一个层次。

值得一提的是,PDM 的作者是 PyPa 成员、Pipenv 目前主要的维护者之一,最重要的是,他是中国人,因而这是一款国人开发的工具。

# 1. Why PDM?

早期的包管理器(如 Pipevn,Poetry),都是基于虚拟环境的,虚拟环境主要是为了隔离项目开发环境,但假如触及到虚拟 环境嵌套虚拟环境,问题就难搞了,经常会呈现问题。

PDM 得益于一个 2018 年的 PEP 提案(PEP582,Python local packages directory),完整摒弃了虚拟环境。

从作者的博客上来看,当初之所以要反复造个轮子,完整是由于 Pipenv 和 Poetry 都不够好用,正好有 PEP582 ,能够开发一个划时期的 Python 包管理工具,它就是 PDM 。

PDM 包含如下特性:

PEP 582 本地项目库目录,支持装置与运转命令,完整不需求虚拟环境。

一个简单且相对快速的依赖解析器,特别是关于大的二进制包发布。

兼容 PEP 517 的构建后端,用于构建发布包(源码格式与 wheel 格式)

具有灵敏且强大的插件系统(有插件系统直接就拉开一个层次)

PEP 621 元数据格式

像 pnpm 一样的中心化装置缓存,俭省磁盘空间

虽然 PDM 是国人开发,但思索到国际化,官网文档是全英文的。

我花了整整一天,通读完文档,消化了 70% 的 PDM 用法,现将心得整理分享出来,会对你上手 PDM 有协助。

关于 PDM,内容挺多的,打算分两局部文章来完好地引见它:

面向新手的入门级教程

面向骨灰级选手的教程

本篇是第一篇,先让大家对 pdm 的根本用法有一个框架性的了解,而 pdm 真正竞争力请持续关注后续文章。

# 2. 装置 PDM

PDM 的装置办法有很多种,在官网上就有 6 种,比方 pip、pipx、homebrew 等

在以前的文章中,我引荐过 pipx 工具,在装置那种命令行应用的包时十分好用。

详情:运用 pipx 工具装置命令行工具

而此时 PDM 就是一个命令行工具,因而我也引荐运用 pipx 装置,便当统一对命令行停止管理

执行 pipx install pdm 即可装置

PDM 只要 Python 3.7+ 的版本才干运用,运用其他的办法装置,要先保证你的 Python 版本,但运用 pipx 则不需求你去操心。

# 3. 初始化 PDM

执行 pdm init 就会开端初始化,初始化的时分,会让你选择项目的一些信息

能否要上传 PyPI

依赖的 Python 版本

License 类型

作者信息

邮箱信息

我机器上有 Python 2.7 和 Python 3.10 两个版本,在初始化项目时会把机器上的一切 Python 版本都扫描出来了,会让选择项目的 Python 版本。

完成之后,PDM 会将你的选择以 toml 格式写入 pyproject.toml 配置文件中。

    download