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 · 214 天前 · 5084 次点击
    这是一个创建于 214 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

    poetry 就不会在他的 cache 文件夹里再自己建一个虚拟环境,而是用.venv 里面的虚拟环境了
    ghostviper
        44
    ghostviper   211 天前
    python 版本管理 用 pyenv ;虚拟工程环境管理用 pyenv-virtualenv ;包管理用 pip (记得把源都改成国内,安装 python 的方式用代理先下载指定的压缩包放到~/.pyenv/cache 下 pyenv install XXX )
    generated
        45
    generated   211 天前
    python 的包管理真的是太混乱了,
    laike9m
        46
    laike9m   211 天前 via Android
    @Trim21 对 poetey 会自动检测
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2437 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 13:04 · PVG 21:04 · LAX 06:04 · JFK 09:04
    ♥ Do have faith in what you're doing.