新一代 Python 包管理工具来了!
二条:情人节到了,给大家整点祖传手艺,比如冰墩墩版桌面宠物? 三条:Python 奇淫技巧!!
↑ 关注 + 星标 ,每天学Python新技能
后台回复【大礼包】送你Python自学大礼包
1 简介
说起Python
的包管理工具,大家第一时间想到的肯定是pip
、conda
等经典工具。但最近我发现了一款新颖的Python
包管理工具——pdm
,它受到PEP582
(https://www.python.org/dev/peps/pep-0582/
)以及node
管理库文件方式的启发,帮助我们以「本地项目库」的形式创建及管理不同的Python
环境。
![](https://filescdn.proginn.com/116a6f5eb7ddec04fed122540330c8a9/412c14013d6ab8d2fec2024bcc8ef4ca.webp)
2 使用pdm管理项目库环境
2.1 pdm的安装
pdm
的安装方式多种多样,这里我们使用官方推荐的方式进行安装:
python -m pip install --user pipx
python -m pipx ensurepath
接着关闭你的终端重开一个新的,继续输入:
pipx install pdm
当出现以下内容时,则代表我们的pdm
已经安装完成了~
![](https://filescdn.proginn.com/c0495d6838fefd6d9a63a03d4c27b058/81adead215d1c6060a43836b8f756da3.webp)
2.2 pdm的基础使用
使用pdm
以当前目录作为项目仓库创建项目时,我们需要根据项目实际需要,先切换到对应Python
版本的环境之下,再执行pdm init
来初始化项目,以3.7
为例:
cd C:\Users\pengz\Desktop\当期博客工作台\pdm-demo
conda activate dash-apps
pdm init
初始化项目时,根据自己的实际情况填写每个问题即可:
![](https://filescdn.proginn.com/669a24af371bcc7665452ef4b82c84a9/b08857eb95f381a0902e281de509d260.webp)
上述过程之后,你会在当前目录下发现创建好的pyproject.toml
文件,它记录了当前pdm
项目的各项基本参数:
![](https://filescdn.proginn.com/27e9fa3c37014a1eecec1a7f7a408305/32dd6141fbc03735b7843a8f9bd29dd8.webp)
接下来我们可以根据自己项目的实际需要使用pdm add
命令来安装指定的单个或多个第三方Python
库,以flask
为例(其中第一行命令用于设置国内pypi
镜像源):
pdm config pypi.url https://pypi.douban.com/simple/
pdm add -v flask flask-login
![](https://filescdn.proginn.com/07a4c1c63a21792378567fc62edbb3aa/1f1ceb6eef95c396029e36ed048fb506.webp)
完成安装后,我们可以在当前目录下看到__pypackages_
目录,我们前面所安装的库就隔离安装在其下面,类似node
的node_modules
目录:
![](https://filescdn.proginn.com/a9e7e7872aea242b69aac8785d76d347/e26a67a0454dadbb4024cb0c72ba72db.webp)
也与PEP582
所倡导的项目结构相符合:
foo
__pypackages__
3.7
lib
bottle
myscript.py
这样就实现了项目级别的环境隔离效果,且无需创建额外的虚拟环境,要在IDE
中使用pdm
项目下的本地隔离库执行程序很简单,以pycharm
为例,将pdm
项目打开为pycharm
工程之后,找到如图所示位置的lib
文件夹,将其标记为Sources Root
即可,同时记得将解释器选为pdm init
初始化时所在环境相对应的:
![](https://filescdn.proginn.com/2839c324881e3b6625b07bb6dae0b580/166d27746c03cb4de88f5ce9358d37b0.webp)
与终端中原始环境的执行结果对比,可以发现成功实现了环境隔离,这是因为pdm
项目的__pypackages__
中的包会在环境本身的site-packages
之前被载入,从而更好地隔离包的环境:
![](https://filescdn.proginn.com/47945145724ef999535041eb6ba2da1c/839e9905d7c340dc80c818813ebd35ac.webp)
如果你想要在其他路径或其他机器上还原某个pdm
项目,则仅需要将pyproject.toml
与pdm.lock
文件拷贝过去,再在对应目录下执行pdm sync -v
命令即可,非常的方便,类似npm install
配合package.json
的功能:
![](https://filescdn.proginn.com/54a473978c6a79685eca48821a287cee/f5ec149278d3a6ad9542d0750af837be.webp)
关于pdm
的更多特性你可以前往其官网https://pdm.fming.dev/
了解更多
![](https://filescdn.proginn.com/e4fe82e5a0648ddbeb74ba8250ad3c9f/af5c89a309f20ce08a237d40b543d279.webp)
推荐阅读
您看此文用
分
秒,转发只需1秒哦~
![](https://filescdn.proginn.com/e4fe82e5a0648ddbeb74ba8250ad3c9f/af5c89a309f20ce08a237d40b543d279.webp)
推荐阅读
您看此文用 ![]()
分
![]()
秒,转发只需1秒哦~