新一代 Python 包管理工具来了!

admin 2022年2月10日00:59:58评论79 views字数 1646阅读5分29秒阅读模式

这是「进击的Coder」的第 564 篇技术分享
作者:费弗里
来源:Python 大数据分析

阅读本文大概需要 4 分钟。



1 简介

说起Python的包管理工具,大家第一时间想到的肯定是pipconda等经典工具。但最近我发现了一款新颖的Python包管理工具——pdm,它受到PEP582https://www.python.org/dev/peps/pep-0582/)以及node管理库文件方式的启发,帮助我们以「本地项目库」的形式创建及管理不同的Python环境。

新一代 Python 包管理工具来了!

2 使用pdm管理项目库环境

2.1 pdm的安装

pdm的安装方式多种多样,这里我们使用官方推荐的方式进行安装:

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

接着关闭你的终端重开一个新的,继续输入:

pipx install pdm

当出现以下内容时,则代表我们的pdm已经安装完成了~

新一代 Python 包管理工具来了!

2.2 pdm的基础使用

使用pdm以当前目录作为项目仓库创建项目时,我们需要根据项目实际需要,先切换到对应Python版本的环境之下,再执行pdm init来初始化项目,以3.7为例:

cd C:UserspengzDesktop当期博客工作台pdm-demo
conda activate dash-apps
pdm init

初始化项目时,根据自己的实际情况填写每个问题即可:

新一代 Python 包管理工具来了!

上述过程之后,你会在当前目录下发现创建好的pyproject.toml文件,它记录了当前pdm项目的各项基本参数:

新一代 Python 包管理工具来了!

接下来我们可以根据自己项目的实际需要使用pdm add命令来安装指定的单个或多个第三方Python库,以flask为例(其中第一行命令用于设置国内pypi镜像源):

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

新一代 Python 包管理工具来了!

完成安装后,我们可以在当前目录下看到__pypackages_目录,我们前面所安装的库就隔离安装在其下面,类似nodenode_modules目录:

新一代 Python 包管理工具来了!

也与PEP582所倡导的项目结构相符合:

foo
    __pypackages__
        3.7
            lib
                bottle
    myscript.py

这样就实现了项目级别的环境隔离效果,且无需创建额外的虚拟环境,要在IDE中使用pdm项目下的本地隔离库执行程序很简单,以pycharm为例,将pdm项目打开为pycharm工程之后,找到如图所示位置的lib文件夹,将其标记为Sources Root即可,同时记得将解释器选为pdm init初始化时所在环境相对应的:

新一代 Python 包管理工具来了!

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

新一代 Python 包管理工具来了!

如果你想要在其他路径或其他机器上还原某个pdm项目,则仅需要将pyproject.tomlpdm.lock文件拷贝过去,再在对应目录下执行pdm sync -v命令即可,非常的方便,类似npm install配合package.json的功能:

新一代 Python 包管理工具来了!

关于pdm的更多特性你可以前往其官网https://pdm.fming.dev/了解更多~

新一代 Python 包管理工具来了!

End

崔庆才的新书《Python3网络爬虫开发实战(第二版)》已经正式上市了!书中详细介绍了零基础用 Python 开发爬虫的各方面知识,同时相比第一版新增了 JavaScript 逆向、Android 逆向、异步爬虫、深度学习、Kubernetes 相关内容,‍同时本书已经获得 Python 之父 Guido 的推荐,目前本书正在七折促销中!

内容介绍:《Python3网络爬虫开发实战(第二版)》内容介绍


新一代 Python 包管理工具来了!


扫码购买


新一代 Python 包管理工具来了!


好文和朋友一起看~

原文始发于微信公众号(进击的Coder):新一代 Python 包管理工具来了!

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月10日00:59:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   新一代 Python 包管理工具来了!http://cn-sec.com/archives/771263.html

发表评论

匿名网友 填写信息