Python 现在最好用的包管理是啥? - V2EX
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
maichael
V2EX    Python

Python 现在最好用的包管理是啥?

  •  
  •   maichael 2020-09-10 15:10:53 +08:00 9140 次点击
    这是一个创建于 1862 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近为了给测试搭自动化测试,重新开始搞起 Python,但是整体工程结构比较苦恼。

    重点是版本管理,requirements.txt 感觉不怎么好用。Pipenv? Tox? 还是其它的啥?

    以及像 package.json 里 scripts 的用法,python 有类似的吗?

    46 条回复    2020-09-13 14:19:44 +08:00
    cdyrhh
        1
    cdyrhh  
       2020-09-10 15:11:30 +08:00   1
    poetry
    dddd1007
        2
    dddd1007  
       2020-09-10 15:24:05 +08:00
    poetry +1
    shunconf
        3
    shunconf  
       2020-09-10 15:28:15 +08:00
    @dddd1007
    @cdyrhh poetry 我感觉好难用啊,依赖包都不能指定存放得位置
    Trim21
        4
    Trim21  
       2020-09-10 15:29:55 +08:00
    @shunconf #3 什么叫指定依赖包的存放位置...你是说安装完依赖之后的 site-packages 的位置吗
    Trim21
        5
    Trim21  
       2020-09-10 15:32:04 +08:00
    poetry 应该是目前为止 python 中最像 npm 的包管理器了。

    你可以先创建虚拟环境然后再虚拟环境里 poetry install,所有的包就会安到虚拟环境里面了。

    等价于 npm 的 scripts 的用法目前还没有,但是在计划中了
    laike9m
        6
    laike9m  
       2020-09-10 16:13:38 +08:00 via Android   2
    感觉你先要先了解一下包管理的概念。像你提到的 Tox,和包管理压根就没一毛钱关系。我个人反正都是 Poetry 一把梭。

    可以听一下我们的这期节目,捕蛇者说
    Ep 15. 和 PyPA 的成员聊聊 Python 开发工作流
    https://www.pythonhunter.org/episodes/ep15

    这期中文 Python 圈子里最懂 packaging 的两个人我们都请到了,讨论了各种常用方案包括 pipenv 和 poetey
    laike9m
        7
    laike9m  
       2020-09-10 16:15:20 +08:00 via Android
    @Trim21 我甚至觉得 poetry 应该把它自己的 virtual env 功能去掉
    watanuki
        8
    watanuki  
       2020-09-10 16:28:03 +08:00   1
    我 python 用的不多,也很长时间没用 python 了,我对 python 包管理的认识还停留在 pip install 和 conda install,anaconda 还算好用?
    0bit
        9
    0bit  
       2020-09-10 16:29:51 +08:00
    poetry + 1
    TimePPT
        10
    TimePPT  
    PRO
       2020-09-10 16:39:23 +08:00
    看来 pipenv 把大家坑的都没人提了
    chenqh
        11
    chenqh  
       2020-09-10 16:42:23 +08:00
    我只会 pip install
    0bit
        12
    0bit  
       2020-09-10 16:43:05 +08:00
    @TimePPT pipenv 早早的就被内定,然后就不思进取了,伤心了
    arischow
        13
    arischow  
       2020-09-10 16:44:48 +08:00 via iPhone
    poetry 可以配置不要创建虚拟环境,然后用自己指定的虚拟环境作为包的安装位置。
    fhsan
        14
    fhsan  
       2020-09-10 16:49:15 +08:00
    我不信
    pipenv 2018.11.26 2020.8.13
    cominghome
        15
    cominghome  
       2020-09-10 17:01:14 +08:00
    懒得整别的,一直都是 pip 一把梭,倒是没遇到过什么大问题
    Hstar
        16
    Hstar  
       2020-09-10 17:01:58 +08:00
    pipenv 已经没人用了吗,我觉得蛮好用的
    hahajing2019
        17
    hahajing2019  
       2020-09-10 18:00:29 +08:00
    miniconda
    td width="10" valign="top">
    hyperbin
        18
    hyperbin  
       2020-09-10 18:04:53 +08:00 via Android
    就我一个在用 pip 吗
    renmu123
        19
    renmu123  
       2020-09-10 18:29:45 +08:00 via Android
    @shunconf 现在已经支持了,也支持在当前项目内创建 venv 了
    Ricardoo
        20
    Ricardoo  
       2020-09-10 19:48:14 +08:00
    为什么都没人说 conda ?我用 anaconda 和 miniconda
    lithiumii
        21
    lithiumii  
       2020-09-10 19:54:49 +08:00   1
    我也是 conda,平常用 miniconda,树莓派用 miniforge
    看来要学学 poetry
    wizardoz
        22
    wizardoz  
       2020-09-10 19:55:36 +08:00
    哪个最好用不知道,一直用 pip,够用,懒得去折腾新的
    clemente0620
        23
    clemente0620  
       2020-09-10 19:59:14 +08:00
    miniconda
    rglee
        24
    rglee  
       2020-09-10 20:18:21 +08:00 via Android
    我只用 pip 和 conda,这是跟不上主流了吗?
    l1xnan
        25
    l1xnan  
       2020-09-10 22:17:13 +08:00 via Android
    数据分析项目 conda,日常脚本 pip,Python 包开发 poetry,部署 docker,pipenv 半残坑货
    metamask
        26
    metamask  
       2020-09-10 22:38:09 +08:00   1
    pipenv 有挺多问题,但还是很好用

    poetry 试用过一段时间,感觉还是不太习惯,感觉不太对味。
    yucongo
        27
    yucongo  
       2020-09-10 23:07:06 +08:00
    超超赞 poetry,建议初学时花时间看完 poetry 主页的文档。用一阵后再看一次。
    hhbcarl
        28
    hhbcarl  
       2020-09-11 00:54:14 +08:00
    感觉其他的包管理工具太重了,加了好多新概念,不够「原生」,我用 pip-tools 足够了。
    CareiOS
        29
    CareiOS  
       2020-09-11 09:49:55 +08:00
    miniconda+1
    sharpy
        30
    sharpy  
       2020-09-11 10:15:34 +08:00
    miniconda+1
    sylvos
        31
    sylvos  
       2020-09-11 11:49:46 +08:00 via iPhone
    miniconda
    dayeye2006199
        32
    dayeye2006199  
       2020-09-11 12:41:54 +08:00
    Miniconda pip,docker base 镜像打开就能用
    IgniteWhite
        33
    IgniteWhite  
       2020-09-11 15:07:35 +08:00 via iPhone
    @lithiumii 我树莓派也用 miniforge !感觉 solving environment 好快
    kkbblzq
        34
    kkbblzq  
       2020-09-11 16:19:24 +08:00
    poetry + 1
    之前用 pipenv,依赖多了以后问题很多,而且差不多 2 年没有人维护(最近终于继续维护了),所以换了 poetry,目前用下来基本满足需求
    lostpg
        35
    lostpg  
       2020-09-11 18:26:34 +08:00
    Poetry 吧,conda 更像是全局的虚拟环境管理,poetry 更像是 npm,cargo 那样的项目的环境和包管理。
    sayhi
        36
    sayhi  
       2020-09-12 00:10:55 +08:00 via Android
    miniconda
    Pho3nix
        37
    Pho3nix  
       2020-09-12 09:51:50 +08:00
    conda 有些时候版本冲突很难受,poetry 有解决么?
    Trim21
        38
    Trim21  
       2020-09-12 20:10:42 +08:00 via iPhone
    @laike9m 我现在是在.venv 建一个虚拟环境假装 node_modules…
    Trim21
        39
    Trim21  
       2020-09-12 20:11:50 +08:00 via iPhone
    @Pho3nix poetry 会保证所有的包之间没有依赖冲突
    laike9m
        40
    laike9m  
       2020-09-13 01:53:07 +08:00 via Android
    @Trim21 “在 venv 建虚拟环境”是指? venv 本来不就是用来建虚拟环境的么
    610915518
        41
    610915518  
       2020-09-13 08:11:34 +08:00 via iPhone
    pip install -r requirements.txt
    yzc27
        42
    yzc27  
       2020-09-13 10:36:39 +08:00
    以前 pyenv + pipenv,现在 pyenv + poetry
    Trim21
        43
    Trim21  
       2020-09-13 11:43:42 +08:00 via iPhone
    @laike9m 是在项目根目录 python -m venv .venv …

    poetry 就不会在他的 cache 文件夹里再自己建一个虚拟环境,而是用.venv 里面的虚拟环境了
    ghostviper
        44
    ghostviper  
       2020-09-13 12:17:22 +08:00
    python 版本管理 用 pyenv ;虚拟工程环境管理用 pyenv-virtualenv ;包管理用 pip (记得把源都改成国内,安装 python 的方式用代理先下载指定的压缩包放到~/.pyenv/cache 下 pyenv install XXX )
    generated
        45
    generated  
       2020-09-13 13:02:28 +08:00
    python 的包管理真的是太混乱了,
    laike9m
        46
    laike9m  
       2020-09-13 14:19:44 +08:00 via Android
    @Trim21 对 poetey 会自动检测
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2784 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 43ms UTC 14:30 PVG 22:30 LAX 07:30 JFK 10:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86