V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yjsp1919
V2EX  ›  程序员

想从 github 下个项目,折腾一大顿安装 docker,好不容易打开 juypter notebook

  •  
  •   yjsp1919 · 2024-01-04 08:58:01 +08:00 · 3376 次点击
    这是一个创建于 368 天前的主题,其中的信息可能已经有所发展或是发生改变。

    然后我发现里边其实就是 py 代码

    无语了

    用 docker 发布是为了让用户不用自己下载包?

    就那么几个包有必要吗

    现在 pycharm 下包很方便了

    狗狗两下用 pip 也不费什么事吧

    第 1 条附言  ·  355 天前
    家人们,没想到这么快就被打脸了
    我以前用的都是用的人非常多的常用包比如 pandas 之类
    最近用了个比较小众的马上就冲突了^_^
    然后包出问题又不可能一个个排查
    只能新建个环境
    真的是^_^
    29 条回复    2024-01-05 04:54:40 +08:00
    Bingchunmoli
        1
    Bingchunmoli  
       2024-01-04 08:59:22 +08:00 via Android
    py 装个包花式 err , 环境不一致,非开发用户就很折磨
    yjsp1919
        2
    yjsp1919  
    OP
       2024-01-04 09:08:57 +08:00
    @Bingchunmoli 是因为包之间还互相依赖吗?
    也可能有的机器就不能随便装东西?比如人家的服务器不想装 python 开发环境?
    musi
        3
    musi  
       2024-01-04 09:13:20 +08:00
    有没有可能,有些包底层用 c 调了系统级的 API ,有些包只支持 Linux ,即使是 linux 不同的发行版也可能不一样,这时候用 docker 就很方便了
    mwjz
        4
    mwjz  
       2024-01-04 09:17:39 +08:00
    我不写 py 的为啥要装 py 环境?

    等你 docker 折腾好了,你就会太方便了。。。。。


    一次 docker = 所有环境


    发布项目不需要考虑环境,目录,一个 docker 全平台
    安装软件不需要考虑 vm 环境,一个 docker 全解决
    kneo
        5
    kneo  
       2024-01-04 09:23:00 +08:00 via Android   ❤️ 5
    Python 的包管理是最💩的。多玩玩现在那些 ai 项目你就明白了。要我说 Python 的项目都应该用 docker 发布。
    Yourshell
        6
    Yourshell  
       2024-01-04 09:43:50 +08:00
    docke 基本标配了需要折腾什么呢?
    jayeli
        7
    jayeli  
       2024-01-04 09:45:51 +08:00
    运行 get.docker.com 就装好了
    hancai
        8
    hancai  
       2024-01-04 09:59:10 +08:00
    我连 python 环境都没有, 你还让我下包。
    chhtdd
        9
    chhtdd  
       2024-01-04 09:59:49 +08:00
    pycharm 的包很全?
    pip 几下很简单,冲突很少?
    twofox
        10
    twofox  
       2024-01-04 10:44:08 +08:00
    有 docker 我就会用 docker ,因为我不想往我的环境里面塞我不认识的东西
    GoRoad
        11
    GoRoad  
       2024-01-04 11:09:55 +08:00
    只能说 conda 的出现 多少解决了 ppy 的包冲突问题,但是也就是解决了一点,通过 docker 封装才真的方便
    fregie
        12
    fregie  
       2024-01-04 11:48:05 +08:00
    docker 部署一行命令,几乎不会出问题
    部署 python 可就麻烦咯,版本,依赖慢慢搞吧
    0o0O0o0O0o
        13
    0o0O0o0O0o  
       2024-01-04 12:10:31 +08:00
    然后 issues 可能会多五倍,要么是“我设置了代理我能 pull 镜像但为什么装不上这个依赖”,要么是因为 Python 版本高了低了引起的报错,然后还带上一些无效信息“我是用 PyCharm 安装的”

    自认为有能力处理可以直接看 Dockerfile
    allenby
        14
    allenby  
       2024-01-04 12:33:56 +08:00 via Android
    @Bingchunmoli 是啊,有依赖的,下包都让人折磨
    qq565425677
        15
    qq565425677  
       2024-01-04 13:23:57 +08:00
    @kneo #5 python 的包可以用 conda/mamba 管理,比 docker 还要好
    julyclyde
        16
    julyclyde  
       2024-01-04 13:40:26 +08:00
    虽然我天天鼓吹别用 docker
    但是 python 那一堆零碎文件……
    kneo
        17
    kneo  
       2024-01-04 14:44:44 +08:00 via Android
    @qq565425677 如果说 Python 的依赖管理是💩,conda 无非就是,邮寄过来的装在盒子里的💩……换个包装再尝一次,你会惊喜发现味道一样的。
    某人:“我是为了什么又吃了一遍?”
    Bingchunmoli
        18
    Bingchunmoli  
       2024-01-04 16:22:25 +08:00 via Android
    @qq565425677 所以安装还是 pip -r 吗,百度。安装 python 依赖会是 什么
    nagisaushio
        19
    nagisaushio  
       2024-01-04 16:26:51 +08:00
    @qq565425677 再好用也比不过 docker 别人帮你封好的,下下来直接就能跑
    anubu
        20
    anubu  
       2024-01-04 16:44:46 +08:00
    如果就是想部署起来玩一玩的场景,不仅仅是 requirements.txt ,其它的 package.json 、pom.xml 就算好点也有限,在 Dockerfile 面前都要低头。容器部署对于爱折腾部署的人就是福音,再也看不到玩具 A 和玩具 B 打起来逼你选边站的场景了,成年人主打一个全都要。
    qq565425677
        21
    qq565425677  
       2024-01-04 16:57:47 +08:00
    @kneo #17 不知道你说的💩是什么意思,我自己用 mamba 用的挺舒服的
    @Bingchunmoli 抱歉没看懂
    @nagisaushio 从易用性角度、无脑玩的角度来讲确实是这样,但是其实想好好用 docker 我自己一般还要对 docker run 或 compose 再加一些自己的配置(比如配置时区、代理、权限等),最后感觉各种成本和 mamba/conda 也差不多

    再解释一下,我所说的比 docker 好主要指的是环境管理上区别不大(当然 docker 确实更方便一些),但是 conda/mamba 不同的环境下是可以共用安装的库的,如果之前安装过 cuda11.8 ,那么在新的环境中安装 cuda11.8 是不会占用空间的,环境配置起来也很快。但是如果项目多了都用 docker ,那么所有可复用的库 docker image 都要包含一份。

    另外从个人开发的角度来讲,用 pycharm/vscode 远程到服务器进行 python 开发也要比起个 docker 容器,再映射 ssh 服务方便的多
    qq565425677
        22
    qq565425677  
       2024-01-04 17:02:29 +08:00
    @qq565425677 #21 对不起,我又去确认了一下,conda 也是独立的🤡🤡🤡
    qq565425677
        23
    qq565425677  
       2024-01-04 17:03:09 +08:00
    @qq565425677 #22 只是下载的文件是共用的,顶多是安装会快一些🤡🤡🤡
    rekulas
        24
    rekulas  
       2024-01-04 17:51:24 +08:00
    狗狗两下用 pip 也不费什么事吧

    还是太年轻,没遇到过循环依赖冲突的吧

    啥时候安 docker 那点破事都敢碰瓷 pip 了
    z1829909
        25
    z1829909  
       2024-01-04 18:15:39 +08:00
    python 的依赖可没那么好安装, 如果 pip install 一遍过算牛逼的.
    而且 python 有时候充当胶水的作用, 调用你操作系统的库, 并不是纯 pip 能解决的, 作者也是贴心地帮你打包好了, 没想到挨顿骂.
    z1829909
        26
    z1829909  
       2024-01-04 18:20:04 +08:00
    @qq565425677 我理解 conda 是解决了 python 环境隔离的问题, 但是没解决包安装出问题解决的困难度. 和 docker 不是一个东西
    Alias4ck
        27
    Alias4ck  
       2024-01-04 18:32:31 +08:00
    @qq565425677 那你可能不知道有个叫 devcontainer 的东西 一个配置文件解决开发环境问题
    NoOneNoBody
        28
    NoOneNoBody  
       2024-01-04 18:32:42 +08:00
    下之前看看语言占比啊,如果 python 100%,不想折腾 docker 就自己弄呗

    我是不敢随便 pip install
    上次想在项目加个功能,pip 装了个三方包,然后……然后……最终整个环境重装了
    不知道这个三方包改了什么依赖的版本,估计是 numpy 降版导致一个连锁反应,从 pandas,numba,opencv 到 sklearn 等等一堆错误
    jqtmviyu
        29
    jqtmviyu  
       2024-01-05 04:54:40 +08:00
    npm 也经常被喷, 但隔离还是有好处的.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:12 · PVG 05:12 · LAX 13:12 · JFK 16:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.