V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sadhen
V2EX  ›  Python

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

  •  
  •   sadhen ·
    darcy-shen · 2022-08-02 09:20:15 +08:00 · 4890 次点击
    这是一个创建于 843 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    27 条回复    2022-08-02 17:40:24 +08:00
    RRRoger
        1
    RRRoger  
       2022-08-02 09:31:46 +08:00   ❤️ 1
    胖次?
    yuyue001
        2
    yuyue001  
       2022-08-02 09:33:47 +08:00
    pip
    pipenv
    poetry
    pdm
    conda

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

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

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

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


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

    这个不是再造轮子,是很多年前就开始造的工具。背后是这家公司: https://www.toolchain.com/

    而且会 pants ,可以找到工作: https://www.pantsbuild.org/page/jobs
    zhoujinjing09
        22
    zhoujinjing09  
       2022-08-02 15:11:07 +08:00
    这个和 bazel 有啥区别?
    likeccpo
        23
    likeccpo  
       2022-08-02 16:11:45 +08:00
    我选择 pyenv...
    l4ever
        24
    l4ever  
       2022-08-02 16:54:45 +08:00   ❤️ 2
    python -m venv venv 很难吗?
    非要搞那么多轮子? 对不起,我们不是前端;
    你觉得官方的 venv 不好, 请提 pr
    zhenrong
        25
    zhenrong  
       2022-08-02 16:59:24 +08:00
    @l4ever 我也觉得,venv 多简洁啊,一行命令搞定。那个我一点开看到用法描述一堆文档,瞬间没兴趣了。less is more.
    musi
        26
    musi  
       2022-08-02 17:18:54 +08:00
    前端进来看了一眼评论,骂骂咧咧关掉了页面
    sadhen
        27
    sadhen  
    OP
       2022-08-02 17:40:24 +08:00   ❤️ 1
    @zhoujinjing09 可以看这里 https://monorepo.tools/ 我没有实际用过 bazel ,无法比较
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2205 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 00:54 · PVG 08:54 · LAX 16:54 · JFK 19:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.