推荐学习书目
› 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 · Sep 10, 2020 · 10570 views
    This topic created in 2250 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

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

    poetry 就不会在他的 cache 文件夹里再自己建一个虚拟环境,而是用.venv 里面的虚拟环境了
    ghostviper
    ghostviper
    Sep 13, 2020
    44
    python 版本管理 用 pyenv ;虚拟工程环境管理用 pyenv-virtualenv ;包管理用 pip (记得把源都改成国内,安装 python 的方式用代理先下载指定的压缩包放到~/.pyenv/cache 下 pyenv install XXX )
    generated
    generated
    Sep 13, 2020
    45
    python 的包管理真的是太混乱了,
    laike9m
    laike9m
    Sep 13, 2020 via Android
    46
    @Trim21 对 poetey 会自动检测
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1563 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 121ms · UTC 09:16 · PVG 17:16 · LAX 01:16 · JFK 04:16
    ♥ Do have faith in what you're doing.