V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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 · 9711 views
    This topic created in 2055 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
        1
    cdyrhh  
       Sep 10, 2020   ❤️ 1
    poetry
    dddd1007
        2
    dddd1007  
       Sep 10, 2020
    poetry +1
    shunconf
        3
    shunconf  
       Sep 10, 2020
    @dddd1007
    @cdyrhh poetry 我感觉好难用啊,依赖包都不能指定存放得位置
    Trim21
        4
    Trim21  
       Sep 10, 2020
    @shunconf #3 什么叫指定依赖包的存放位置...你是说安装完依赖之后的 site-packages 的位置吗
    Trim21
        5
    Trim21  
       Sep 10, 2020
    poetry 应该是目前为止 python 中最像 npm 的包管理器了。

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

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

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

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

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

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