pdm 1.0.0 beta 版发布,支持最新 metadata 标准 PEP 621

2020-12-24 11:57:22 +08:00
 frostming

先祝大家圣诞快乐。

PDM 刚刚也发布了 1.0.0 beta 版,距离上次在 V 站宣传 PDM,又多了很多好用的功能

  1. PEP 621 metadata 标准
  2. PEP 582 local package 现在 直接用 python xxx.py运行就能加载隔离环境的包了。
  3. 支持其他主流 metadata 格式导入:requirements.txt/Pipenv/Poetry/Flit
  4. Bash/Zsh/Fish/PowerShell 命令补全,支持 Windows 一直是高优先级,因为我自己就用的是 Windows
  5. pdm scripts 快捷运行(类似 package.json 的 scripts ),支持环境变量加载

关于第 2 条我具体说下这有什么好处,比如我现在要写一个 Flask 应用,只需要

  1. pdm add flask
  2. 编写app.py
  3. python app.py

没有 activate deactivate,直接启动

这能做什么呢?比如我在 user site 下面安装了一个 IPython,现在我不用在每个环境里都装一个 IPython,只要保证用的 Python 版本是一致的,那我就可以到处用这个 IPython 导入__pypackages__中的包做调试了。(只是举个例子,IPython 能自动探测处于 venv 中并加载包路径,但还有很多其他的命令行工具是没办法这样的)

是的没错,venv 其实也可以实现这个效果,不过就是在创建的时候加上--site-packages选项嘛,但已经创建好的呢,估计不是所有人都知道去改那个pyvenv.cfg。何况始终要记得 activate 才能启用 venv 中的包。

但 PDM 最大的一个缺陷是(别喷,我自己招,哈哈):IDE 的支持,每次创建新项目,都需要进行手动配置才能使用__pypackages__中的包。

1985 次点击
所在节点    Python
6 条回复
abersheeran
2020-12-24 12:52:01 +08:00
这个更新是真的不错。后续版本考虑做一下 PyPi 发布支持吗?
frostming
2020-12-24 15:29:38 +08:00
@abersheeran 我一直在犹豫,是要全部一把抓,还是 keep it simple,让专业的人( twine )做专业的事
abersheeran
2020-12-24 16:04:15 +08:00
@frostming 也是。保留简单最好。文档里可以跟 twine 那边做个联动,简单的给个样例教一下如何使用 pdm 管理项目,用 twine 发布项目。
abersheeran
2020-12-24 16:15:38 +08:00
@frostming build whl 的功能肯定得有……不然用了你这个管理依赖,还得写一份 setup.py 太冗余了
frostming
2020-12-24 17:02:21 +08:00
@abersheeran 改进文档可以有

#4 pdm build 就是
lidashuang
2022-11-03 01:11:43 +08:00
好用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/738533

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX