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
css3
V2EX  ›  Python

你们用什么工具来管理 Python 的库啊?

  •  1
     
  •   css3 · 2019-04-13 10:24:46 +08:00 · 9419 次点击
    这是一个创建于 2050 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我都是全 pip install xx 下来,发现越装越多,有些装了就用过一次就没用了,怎么样科学管理 python 的库呢
    windows 上用什么管理?
    linux 上用什么管理?
    第 1 条附言  ·  2019-04-13 12:04:08 +08:00
    还有就是,自己写的 python,可能引入了一些其他第三方库,写完之后 ,要发给别人用,别人也要屁颠屁颠的 pip install xxx, 这种库的问题,如何解决呢?就是想发脚本过去,对方直接能运行就好了,(把库也一起打包过去??)
    58 条回复    2019-04-16 01:30:50 +08:00
    youngce
        1
    youngce  
       2019-04-13 10:29:47 +08:00
    pipenv 了解一下
    Sylv
        2
    Sylv  
       2019-04-13 10:31:09 +08:00 via iPhone
    pipenv 了解一下
    flyingghost
        3
    flyingghost  
       2019-04-13 11:01:15 +08:00
    pipenv 了解一下
    kaiueo
        4
    kaiueo  
       2019-04-13 11:03:48 +08:00 via iPhone   ❤️ 2
    anaconda
    css3
        5
    css3  
    OP
       2019-04-13 11:04:15 +08:00
    guyujiezi
        6
    guyujiezi  
       2019-04-13 11:05:12 +08:00
    py3 自带 venv
    bigjack
        7
    bigjack  
       2019-04-13 11:08:38 +08:00
    pipenv
    youngxu
        8
    youngxu  
       2019-04-13 11:09:21 +08:00 via Android   ❤️ 1
    conda 了解一下
    luanguang
        9
    luanguang  
       2019-04-13 11:11:36 +08:00
    我系统是 windows
    我用 conda
    XIVN1987
        10
    XIVN1987  
       2019-04-13 11:18:36 +08:00
    pip
    XIVN1987
        11
    XIVN1987  
       2019-04-13 11:19:03 +08:00
    pip + virtualenv
    congeec
        12
    congeec  
       2019-04-13 11:26:10 +08:00
    项目用 poetry

    平时用 pip+conda
    Thresh
        13
    Thresh  
       2019-04-13 11:27:21 +08:00
    conda
    chengxiao
        14
    chengxiao  
       2019-04-13 11:37:05 +08:00
    不是每个项目独立一个 virtualenv 么?
    j0hnj
        15
    j0hnj  
       2019-04-13 11:38:54 +08:00   ❤️ 6
    pyenv + poetry, 推荐 pipenv 的你们真的用得爽吗?
    Cbdy
        16
    Cbdy  
       2019-04-13 11:54:26 +08:00 via Android
    Docker
    caqiko
        17
    caqiko  
       2019-04-13 12:08:16 +08:00   ❤️ 1
    生成 requirements.txt 文件啊
    jinyu121
        18
    jinyu121  
       2019-04-13 12:15:26 +08:00 via iPhone   ❤️ 1
    自己是这样的:
    conda base 里面不装包
    创建一个叫 playground 的 env,随便装任何包。
    任何需要对外发(发给别人、发 github 上、发博客)的程序,都单独起一个 env,并写 requirements
    只是临时用一下的程序,在 playground 里面写完即删
    w2cny
        19
    w2cny  
       2019-04-13 12:16:00 +08:00 via Android
    anaconda+1
    workwonder
        20
    workwonder  
       2019-04-13 12:19:06 +08:00 via Android
    pipenv 经过痛苦折磨早已放弃。

    pyenv + pyenv-virtualenv + pip-tools
    secsilm
        21
    secsilm  
       2019-04-13 12:20:59 +08:00 via Android
    Pipenv 用过不成熟,对数据科学不友好,数据科学还是 conda 吧
    hujianxin
        22
    hujianxin  
       2019-04-13 12:28:02 +08:00
    poetry,感觉比 pipenv 好用很多
    hujianxin
        23
    hujianxin  
       2019-04-13 12:28:38 +08:00
    pipenv 真的有点不太行
    aneureka
        24
    aneureka  
       2019-04-13 12:47:17 +08:00 via Android
    项目用 virtualenv 脚本就直接 pip 了…
    ifane
        25
    ifane  
       2019-04-13 13:06:23 +08:00
    docker 加一
    cranelee13
        26
    cranelee13  
       2019-04-13 13:27:04 +08:00 via iPhone
    vmware
    daolanfler
        27
    daolanfler  
       2019-04-13 14:56:55 +08:00
    pyenv + pipenv 加一
    ospider
        28
    ospider  
       2019-04-13 15:54:48 +08:00
    还在使用 pip,研究过 pipenv,感觉就是垃圾,问题多不说,开发者态度非常傲慢
    ly1836
        29
    ly1836  
       2019-04-13 16:28:29 +08:00
    Anaconda Navigator
    keepeye
        30
    keepeye  
       2019-04-13 16:30:11 +08:00
    pyenv + virtualenv,保证每个项目一个环境互不干扰
    BlBana
        31
    BlBana  
       2019-04-13 16:36:09 +08:00 via Android
    @keepeye 握爪,我也是这么搞得
    flyingghost
        32
    flyingghost  
       2019-04-13 17:47:32 +08:00
    @j0hnj 项目依赖比较简单,暂时还没遇到痛点,除了 lock 耗时问题。
    能比较一下 pipenv 和 poetry 吗?
    RAHJK
        33
    RAHJK  
       2019-04-13 19:30:21 +08:00 via iPhone
    别的不知道,pipenv 真是 bug 多多,慎用
    lynskylate
        34
    lynskylate  
       2019-04-13 19:34:17 +08:00 via Android
    poetry
    whileFalse
        35
    whileFalse  
       2019-04-13 21:05:46 +08:00
    本地开发直接 install,持续集成走 docker
    CallMeReznov
        36
    CallMeReznov  
       2019-04-13 21:09:18 +08:00
    LZ 你后来那个肯定是 virtualenv 啦
    或者 windows 用 pyinstall 打包
    2s2k
        37
    2s2k  
       2019-04-13 21:22:25 +08:00
    pyenv virtualenv +1
    kios
        38
    kios  
       2019-04-13 21:30:23 +08:00
    conda
    lihongjie0209
        39
    lihongjie0209  
       2019-04-13 21:38:31 +08:00
    python 目前没有看到支持类似 java 中的 fatjar 这种把依赖全部打包的模式, 所以楼主的需求基本无解, 我现在给别人写工具首选会是 java, 一来比较熟悉, 二来依赖管理方便
    scukmh
        40
    scukmh  
       2019-04-13 21:40:50 +08:00
    pyenv + requirements.txt
    iorilu
        41
    iorilu  
       2019-04-13 22:38:13 +08:00   ❤️ 1
    pipenv 确实不好用, 凭空找麻烦

    不折腾, 就是 venv+requirements 安装下也就几分钟时间

    如果希望直接用就 docker
    Nick2VIPUser
        42
    Nick2VIPUser  
       2019-04-13 22:48:24 +08:00
    pycharm+virtualenv 爽
    Nick2VIPUser
        43
    Nick2VIPUser  
       2019-04-13 22:49:07 +08:00
    pip download -r requirements.txt 了解一下
    yim7
        44
    yim7  
       2019-04-13 23:43:41 +08:00
    virtualenvwrapper 了解一下,可以方便的管理虚拟环境,自己写脚本也可以的,只是我不会写 shell 脚本的补全……
    IAPYANG
        45
    IAPYANG  
       2019-04-14 01:24:23 +08:00 via iPhone
    anaconda
    quinoa42
        46
    quinoa42  
       2019-04-14 06:40:03 +08:00
    pacman。。不拿 python 写 project
    shuax
        47
    shuax  
       2019-04-14 09:29:33 +08:00
    requirements.txt
    Fitz
        48
    Fitz  
       2019-04-14 09:37:29 +08:00
    pipenv 的 lock 有时真的很耗时几十分钟我都遇到过
    starsky007
        49
    starsky007  
       2019-04-14 09:41:43 +08:00
    @css3 @lihongjie0209

    将自己写的 Python 包与依赖一起打包的方式

    在代码根目录下:

    1. 首先执行:

    pipreqs --ignore target --force .

    生成 requirements.txt 。

    2. 然后执行:

    pip install -r requirements.txt -t target

    把依赖安装到 target 目录下。

    3. 最后,把源码复制到 target 目录下,删除一些不必要的文件,就可以打包了。

    我在使用无服务器云函数时,就是这么干的,确定可行。只是需要分步操作,没有找到现成的工具可以像 Maven 那样打包,自己也懒得写。

    参考:

    [Python 中的 AWS Lambda 部署程序包 \- AWS Lambda]( https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html#python-package-dependencies)
    shadownet
        50
    shadownet  
       2019-04-14 13:46:19 +08:00 via iPhone
    @youngxu conda 在 win macos 经常出现无法更新 我已经放弃
    silkriver
        51
    silkriver  
       2019-04-14 13:55:39 +08:00
    conda 需要设置境内镜像源,实际上 pip 也需要,否则就算可以更新也慢。
    way2create
        52
    way2create  
       2019-04-14 14:00:08 +08:00
    作为一个不搞 py 的 有时候用 py 的库干点什么 都是用 pycharm 的 venv install 的
    youngxu
        53
    youngxu  
       2019-04-14 14:37:39 +08:00 via Android
    @shadownet 你没换清华源吧
    Qzier
        54
    Qzier  
       2019-04-14 16:01:04 +08:00
    大项目:pipenv install
    脚本:python -m venv venv
    python 版本管理:pyenv
    lonelygo
        55
    lonelygo  
       2019-04-14 16:38:31 +08:00
    pipenv 看起来挺美,玩玩可以,用的真不爽啊。
    pyenv 多好用啊。
    zhanlingjie
        56
    zhanlingjie  
       2019-04-15 09:45:05 +08:00
    @Cbdy 我感觉基于语言层面跑一个容器是不是有点浪费
    Cbdy
        57
    Cbdy  
       2019-04-15 11:18:55 +08:00 via Android
    @zhanlingjie 你都用 Python 了还在乎这点性能开销?
    fakepoet
        58
    fakepoet  
       2019-04-16 01:30:50 +08:00
    pyenv
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3310 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 04:55 · PVG 12:55 · LAX 20:55 · JFK 23:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.