Pants:不用再创建 Python 虚拟环境的构建工具

2022-08-02 09:20:15 +08:00
 sadhen

Pants: https://www.pantsbuild.org/

我觉得使用 Pants 的最大的优点是不用再创建 Python 虚拟环境。

这是我写的一个 demo monorepo: https://github.com/da-tubi/pants-pyspark

4592 次点击
所在节点    Python
27 条回复
RRRoger
2022-08-02 09:31:46 +08:00
胖次?
yuyue001
2022-08-02 09:33:47 +08:00
pip
pipenv
poetry
pdm
conda

太多了,学不动。我用 poetry 。
Mithril
2022-08-02 09:37:27 +08:00
Python 也要前端化了?
zhlxsh
2022-08-02 10:02:43 +08:00
@yuyue001 还有 docker 也算一种方式,也得学😂
6ugman
2022-08-02 10:11:45 +08:00
对 poetry 支持就用 不支持就观望
sadhen
2022-08-02 10:56:00 +08:00
@6ugman 我之前尝试用 poetry 来管理 airflow dags 的 python 代码,结果发现 poetry 并没有那么好用。

大概一年之前,我觉得 poetry 特别慢。而且依赖冲突的问题也没有很好地解决。使用 pants 可以解决依赖冲突的问题。
sadhen
2022-08-02 10:56:51 +08:00
@Mithril monorepo 不是什么“前端化”。不要把 python 生态的构建工具强行拽到前端娱乐圈。
Mithril
2022-08-02 11:27:02 +08:00
@sadhen 有区别吗?
依赖管理构建工具搞了一大把,Java 这么多年也就 Maven 和 Gradle 。
前端从 npm ,到 pnpm ,yarn 。
python 的二楼也列了一大把。
一言不合就再造个轮子,对于“python 生态的构建工具”而言,这不就是在割裂么。
Mark24
2022-08-02 11:32:59 +08:00
逐渐前端化,做同样的事情,几十个轮子,结果没有一个做得好的。

这种东西适合官方出一个持续维护一个。
6ugman
2022-08-02 11:37:47 +08:00
@sadhen poetry 做包管理(依赖还有发布)还挺顺我手的,慢的时候确实特别慢,挂上代理,换自定义源会好很多
zhenrong
2022-08-02 11:53:39 +08:00
打开看一眼就关了,一堆文档,谁有时间去研究这种。开发环境 venv 就完了,生产环境直接容器化。把时间浪费在折腾这些工具上没有意义,有这时间代码早写完了。
ViriF
2022-08-02 12:25:09 +08:00
这功能上是对应 make 、bazel 的吧;
(而且要安装的话我多半可能还是 pipx install pants 或者 workon build_system && pip install pants......)
gengchun
2022-08-02 12:27:52 +08:00
poetry 差不多了。反正底层都是 pip/setuptools 。

我这里打包也没有花多少时间。


@sadhen poetry 处理了不了的依赖还是好好想一下,不要靠工具解决。Java 下面也是很头痛的事情,不要觉得可以通过工具解决。
pepesii
2022-08-02 12:34:46 +08:00
土鳖的我还是在用 virtualenv ,最近开始接触 ml 的项目,用了下 conda
angrylid
2022-08-02 12:54:31 +08:00
docker 或者 conda 不就完了吗🤔
V2SINE
2022-08-02 12:55:28 +08:00
V2SINE
2022-08-02 12:56:58 +08:00
Sorry, 新人还不知道怎么换行,Enter 发出去了,Ctrl + Enter 也发出去了。
BeautifulSoap
2022-08-02 13:04:11 +08:00
本地直接用 mini conda ,服务器上就直接 docker 镜像上 ECS 了,有点懒得折腾了
sadhen
2022-08-02 14:14:51 +08:00
@ViriF pants 不需要用 pipx 这种工具安装的,直接用脚本 pants.sh 启动就可以了。类似 maven 项目里面的启动脚本。
sadhen
2022-08-02 14:17:14 +08:00
@zhenrong 磨刀不误砍柴工。不过这类事情确实应该由架构师去思考、设计、实现。或者由专门的团队来维护。比如 twitter ,他们的 python 项目用的就是 pants ,不过最近迁移到了 bazel 。

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

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

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

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

© 2021 V2EX