python生态的项目管理工具

背景

在前端项目中,任何一个包管理器都可以直接使用package.json中scripts自定义的脚本,这意味着无论是任何框架任何架构,作者写了dev脚本,那么你就可以使用npm run dev启动项目查看效果,然而python生态中,火得一塌糊涂的uv包管理工具却没有这个特性。

列表

pdm

我最早接触到支持脚本的是pdm
image
使用如下格式进行定义

[tool.pdm.scripts]
dev = "litestar run --reload --host 0.0.0.0 --port 8000"

如同bun或是pnpm,脚本命令具有捷径写法,在无歧义的情况下,可以省略run,直接像下面这样运行。

pdm dev

其实很让我感到不舒服的一点是,scripts这种通用的东西,他们还是定义了一个自己工具的前缀。而不像package.json中,任何包管理工具都是通用的。可见python工程化做得远远不如nodejs。

rye(归档)

rye是uv团队推出的一款项目管理工具,然而现在已经弃用,显然是想要all in uv。
image
然而在uv中,确实不支持自定义脚本,只支持python函数入口(entry points)。
https://github.com/astral-sh/uv/issues/5903
自定义脚本的issue提出近两年了,uv依然没有做出脚本管理的功能,反观隔壁bun,已经吃了nodejs一大片山河,在边缘计算领域大放异彩(国内自然是没人玩这个)。

hatch

相比与pdm显得更重,更啰嗦。
https://github.com/pypa/hatch

hatch dep add requests

pixi

https://github.com/prefix-dev/pixi
如果你习惯使用conda,那么这玩意适合你。

总结

选pdm准没错。
很难相信python生态连个小小的脚本管理都统一不了。

posted @ 2026-04-22 01:51  魂祈梦  阅读(14)  评论(0)    收藏  举报