Py学习  »  Python

python这包管理器,爽啊!

python实战 • 2 年前 • 288 次点击  

大家好,时隔多年,我终于找回公众号的密码了。

当初开这个公众号,纯粹是想分享用python制作的垃圾玩意,顺便寓教于乐,当然现在依然如此……

初心不改,重出江湖!


咱们工人有力量

本人编程,有洁癖,热衷于小而精的玩意(实际是大的不会用),因此希望每一个python项目和依赖都是独立的,可以随处复制直接打包带走……

其实就是低耦合高内聚啦,说白了就是需要虚拟环境嘛!然而传统的virtualenv、pipenv,还有新出的poetry我都不怎么like it.主要是它们相当依赖环境,我改一下项目的目录名字,就进不去虚拟环境了。

然而!中国人是伟大的!咱们工人有力量!大神frost ming开发了pdm,超级好用!牛逼!

废话略多,以下是使用pdm的一个例子。

芜湖起飞

为了我们伟大的python编程事业,首先我们新建一个项目目录,如下:

进入目录,打开我们热爱的shell,灵活的手指敲下命令,大喊一句:“Enter!”:

接下来就是见证奇迹的时刻:

多了两个文件啦!真神奇!

然后,我们安装经典的flask框架:

又多了一个目录啦!Double神奇!

进入python,尝试一下import:

没毛病,很正常!此时该项目的依赖包如下:

然后我们采用控制变量法,再来一次伟大的事业!如下:

进入目录,打开我们热爱的shell,灵活的手指敲下命令,大喊一句:“Enter!”:

我们安装经典的django框架:

此时,该项目的依赖包如下:

嗨!这不是和virtualenv/pipenv/poetry一样,就是个虚拟环境嘛!

不不不,PDM厉害之处在于,你有看见我激活虚拟环境吗?

随便给项目目录换个名字,依然能用!项目间互相隔离,同时又可以快速复制和移动项目,正合我胃口。

PDM,斯国一!

PDM使用指南

安装

pip install pipx   直接用pip安装pdm貌似有bug
pipx ensurepath   设置pipx的环境变量
pipx install pdm
pipx list         查看装好了没

设置下载源

pdm config pypi.url https://mirrors.aliyun.com/pypi/simple

初始化时设置python版本

pdm init    
设置requires-python = ">=3.6,<3.11"
有些依赖包需要特定python版本

设置全局shell

pdm --pep582  设置之后就不用pdm run python

添加包

pdm add 

删除包

pdm remove 

查看包

pdm list
pdm list --graph

查看python环境

pdm info
pdm info --env

迁移依赖

复制源码和pdm的配置
COPY pyproject.toml pdm.lock README.md /project/
COPY src/ /project/src

安装依赖包
pdm install --prod --no-lock --no-editable
或者pdm sync

中心化缓存

pdm config feature.install_cache on 开启后多个项目共用一个依赖包,容量会变小
pdm sync --reinstall 重新安装
pdm config -d feature.install_cache 恢复默认


大佬frostming的博客:https://frostming.com/

PDM官方文档:https://pdm.fming.dev/

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/125614
 
288 次点击