大家喜欢使用 anaconda 吗? - V2EX
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
windcode
V2EX    Python

大家喜欢使用 anaconda 吗?

  •  1
     
  •   windcode
    elliotxx 2018-12-26 17:51:13 +08:00 15480 次点击
    这是一个创建于 2480 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比较好奇大家喜欢用 anaconda 吗? anaconda 的存在是否有些多此一举呢?

    背景:Anaconda 指的是一个开源的 Python 发行版本,其包含了 conda、Python 等 180 多个科学包及其依赖项

    个人认为 anaconda 的功能:

    • 预装很多科学计算库
    • 管理 python 库
    • 虚拟环境

    但是以上功能原生 python 完全可以自己解决:

    • pip (需要什么装什么)
    • pip
    • virtualenv

    那么 anaconda 似乎仅仅是集成了一些功能,让入门变得方便了一些,真的有必要为了一点入门的方便就再套个 conda 去管理 python 吗?

    第 1 条附言    2018-12-27 17:32:48 +08:00

    大家的评论我都看了,很有意思~ 感谢大家客观的回复

    截止到61楼,我总结了一下大家的讨论。

    anaconda 有竞争力的优势:二进制发布,开箱即用,可以免去一些编译麻烦

    嫌 anaconda 臃肿的替代方案:miniconda

    意向投票(手动统计)

    • 喜欢:21
    • 不喜欢:18
    • 意向不明:14
    73 条回复    2018-12-28 13:00:16 +08:00
    TimePPT
        1
    TimePPT  
    PRO
       2018-12-26 17:56:19 +08:00
    科学计算开箱即用,使唤 anaconda 挺好的。
    另外,pip 在 win 下没 anaconda 友好。
    wsh1108
        2
    wsh1108  
       2018-12-26 17:57:14 +08:00
    windows 下省事。linux 下感觉没必要,有点臃肿
    windcode
        3
    windcode  
    OP
       2018-12-26 18:00:28 +08:00
    @TimePPT pip 在 win/linux 我都用过,没发现有什么问题啊
    welkinzh
        4
    welkinzh  
       2018-12-26 18:00:38 +08:00
    太大了,不做科学计算的话用 pipenv 管理环境就够了
    windcode
        5
    windcode  
    OP
       2018-12-26 18:02:29 +08:00
    @wsh1108 +1,太臃肿反而不友好
    jiangnanyanyu
        6
    jiangnanyanyu  
       2018-12-26 18:02:48 +08:00 via Android
    还要记一套命令,懒了
    windcode
        7
    windcode  
    OP
       2018-12-26 18:03:14 +08:00
    @welkinzh 我也觉得太大,而且它的功能不是很必要
    wuhang89
        8
    wuhang89  
       2018-12-26 18:03:43 +08:00
    喜欢。
    Bryan0Z
        9
    Bryan0Z  
       2018-12-26 18:05:04 +08:00 via Android
    我也喜欢 2333
    shadownet
        10
    shadownet  
       2018-12-26 18:06:20 +08:00 via iPhone
    问题蛮多的 快到弃用的边缘了
    hahastudio
        11
    hahastudio  
       2018-12-26 18:08:23 +08:00
    科学计算和开发是两个不同的目标人群
    开箱即用我觉得很重要的
    hakono
        12
    hakono  
       2018-12-26 18:09:33 +08:00 via Android
    嗯。。。楼主一看就是没有被电脑上要装 n 个版本的 Python 折磨过的人
    以及楼主体验下为了做个科学计算,安装了数不清的各种专业科学包,然后一堆包编译有问题一个个去解决有可怕
    justou
        13
    justou  
       2018-12-26 18:14:44 +08:00 via Android
    用的 miniconda
    wzw
        14
    wzw  
       2018-12-26 18:15:52 +08:00 via iPhone
    有 conda mini ?
    skyc
        15
    skyc  
       2018-12-26 18:20:52 +08:00
    喜欢~ 多 python 环境隔离~ 开发也好实验也好都方便
    windcode
        16
    windcode  
    OP
       2018-12-26 18:21:37 +08:00
    @hakono emm,多版本 python 我一般用 update-alternatives 管理。科学库的话,需要编译的库用 conda 就能直接安装了吗?
    Kobayashi
        17
    Kobayashi  
       2018-12-26 18:32:52 +08:00 via Android
    搞科学家计算可以直接上,不是干这个的没必要用。一般管理多版本 Python、虚拟环境用 pyenv、pipenv。如果执意要使用 conda 管理多版本 Python 中、虚拟环境,使用 miniconda。
    dacapoday
        18
    dacapoday  
       2018-12-26 18:34:00 +08:00
    还有国内那些用 centos 标配 py2 却不给 sudo 权限的。装 py3 没权限,编译又缺包,系统库版本太低。只能用 anaconda,二进制发布,即下即用。也内置了 pip,和 conda 指令互不影响。
    Kobayashi
        19
    Kobayashi  
       2018-12-26 18:37:42 +08:00 via Android
    pip 和 conda 并不是完全对应关系,前者是包管理,后者既管理包,也管理 Python 版本、虚拟环境。
    miniconda 可视为一种 CPython 发行版本,因为普通 pip install conda 获得的 conda 好像是个阉割版。anaconda 可以视作 miniconda 外加预安装各种科学计算包。我猜 ana 是指 analysis ?
    hsfzxjy
        20
    hsfzxjy  
       2018-12-26 18:40:43 +08:00 via Android
    conda 省去很多编译的烦恼,许多科学计算库编译起来相当麻烦,还有版本依赖问题
    glasslion
        21
    glasslion  
       2018-12-26 18:49:55 +08:00 via Android
    @Kobayashi 玩梗 anaconda 是水蟒的意思
    Bismarrck
        22
    Bismarrck  
       2018-12-26 19:01:20 +08:00   1
    当你要在 centos 6.5 下跑 tensorflow,glibc 只有 2.12 ,没有 sudo 权限时,就知道 anaconda 的可贵了

    而且开箱即用实在是方便
    ClutchBear
        23
    ClutchBear  
       2018-12-26 19:05:18 +08:00
    用 miniconda
    orangeade
        24
    orangeade  
       2018-12-26 19:17:00 +08:00
    miniconda3 在 win 上最近版本都有问题,
    比如 python 3.7.1 编译时没有 ssl 模块:
    https://github.com/AnacondaRecipes/python-feedstock/issues/13

    conda install jupyterlab 启动后一堆报错,
    pip 反而没问题
    TimePPT
        25
    TimePPT  
    PRO
       2018-12-26 19:19:16 +08:00
    @windcode 可能我比较菜吧
    1nakaELYBbsXbZxY
        26
    1nakaELYBbsXbZxY  
       2018-12-26 19:23:24 +08:00
    就是比较臃肿一点,但是很多时候也是比较省事,多一种选择吧。
    labnotok
        27
    labnotok  
       2018-12-26 19:24:41 +08:00 via Android
    conda 不只是虚拟
    GoLand
        28
    GoLand  
       2018-12-26 19:37:54 +08:00
    pyenv 大法好,conda 太臃肿了。
    fan2006
        29
    fan2006  
       2018-12-26 19:43:34 +08:00
    你应该明白 python 不只是面向程序员。还有其他行业的人在用的。别人需要的是自己操控就可以开的车,而不是还要组装好才能开的车。
    zhangzhe532
        30
    zhangzhe532  
       2018-12-26 22:20:45 +08:00 via Android
    Python 版本问题才是 anaconda 主要解决的对象吧,2.X 并未淘汰 3.X 也在用,加上各个小版本,假如电脑用的 3.7 的,工作用 tensorflow,但是 tensorflow 只到 3.6。就很烦
    JackieMe
        31
    JackieMe  
       2018-12-26 22:21:04 +08:00 via Android
    Anaconda 觉得太臃肿了,用的 Miniconda
    ex2vkf
        32
    ex2vkf  
       2018-12-26 22:26:48 +08:00
    太臃肿了
    ppphp
        33
    ppphp  
       2018-12-26 22:52:06 +08:00
    anaconda 是 windows python 唯一解决方案,mac 和 linux 上各种选择就多了去了,甚至可以按需搭配
    Vegetable
        34
    Vegetable  
       2018-12-26 23:22:04 +08:00 via Android
    科学计算常用的 notebook 一般开发者根本用不到,spyder 同理。
    其实这个发行版真的是为科学计算而生的,我开发机根本就一点都用不上,他最方便的就是可以命令行安装其他版本的 Python
    wwhio
        35
    wwhio  
       2018-12-26 23:31:47 +08:00
    用 miniconda
    congeec
        36
    congeec  
       2018-12-27 00:02:28 +08:00
    linux 下如果你需要 mkl 的话,还是 anaconda 比较方便
    Gentoo 用户请无视我
    widewing
        37
    widewing  
       2018-12-27 00:08:37 +08:00 via Android
    几乎完全用 conda 替代 venv+pip 的路过~
    lxmmmm
        38
    lxmmmm  
       2018-12-27 00:24:07 +08:00 via Android
    Windows 上是真方便,Linux 就算了,自己 pip 搞定一切
    sola97
        39
    sola97  
       2018-12-27 00:30:02 +08:00
    tensorflow
    youngxu
        40
    youngxu  
       2018-12-27 00:30:02 +08:00 via Android
    喜欢,Windows 上用 Anaconda,Linux 上用 Miniconda,科学计算必备,用着方便
    superzou
        41
    superzou  
       2018-12-27 00:32:47 +08:00 via Android
    可以集中精力做科学计算 而不是配置环境什么的。别人可能不是程序员,不需要浪费时间配置什么虚拟环境管理,依赖什么的。
    lovestudykid
        42
    lovestudykid  
       2018-12-27 00:40:31 +08:00
    现在也感觉太臃肿了,包不是特别全。加了 conda-forge 的 channel 导致非常奇异的问题,理论上不能直接 update 大版本的,但我从 python 3.6 升级到了 python 3.7,然而部分软件包还是 3.6 的,没法用。
    ZRS
        43
    ZRS  
       2018-12-27 00:54:03 +08:00
    更喜欢 pip
    hscui
        44
    hscui  
       2018-12-27 01:03:02 +08:00
    作为一个新人,用 Anaconda 感觉非常好;特别是 Spyder 和 Notebook 开箱即用,不用浪费时间在环境配置上,先关注语言本身就好。

    当然,Python 入门以后就可以换用其它东西来折腾了。
    twl007
        45
    twl007  
       2018-12-27 06:31:07 +08:00 via iPhone
    做科学计算就知道好了……有些特殊的科学计算的包要到特定渠道去下才行 要是自己编译真的是要命了
    silkriver
        46
    silkriver  
       2018-12-27 09:15:22 +08:00
    Anaconda 不过就多占些硬盘空间而已,硬盘根本不能算是资源
    fengyj
        47
    fengyj  
       2018-12-27 09:19:26 +08:00 via Android
    太臃肿了。解压都满
    jiejiss
        48
    jiejiss  
       2018-12-27 09:36:13 +08:00
    Mac / Linux 用啥都行。
    Windows 自己玩玩(低端玩家)只用 pip 就够了。最多到 python2 -m pip 和 python3 -m pip 这份上。
    Windows 搞科学计算和机器学习,不用 Anaconda,死都不知道怎么死的
    我就想到去年我想在 Windows 10 上搭个 style2paints ……编译依赖库,报错几十个,一个个看,读 setup.py 源码和 python 自带的调用 C++ Compiler 的脚本的源码,然后再一点点下断点调试……还有为了编译装了 VS 2017 和 VS 2015 ……我的妈呀……
    zst
        49
    zst  
       2018-12-27 09:52:04 +08:00 via Android
    嫌臃肿可以用 miniconda。。。。但是 pip 是真的烦。。。总是莫名其妙报错。。。还不如 conda 省事....但是 conda 速度很慢不知道为啥
    qcts33
        50
    qcts33  
       2018-12-27 09:53:26 +08:00
    科学计算用到的 Numpy Scipy sklearn pandas 都是有 C 乃至 Fortran 的依赖的,要自己编译就太麻烦了
    另外 conda 的 Numpy 的线性代数运算都是链接到 MKL 的,速度可能比你自己编译的更快
    silkriver
        51
    silkriver  
       2018-12-27 09:55:08 +08:00
    要设国内镜像源速度才会快的( conda 国内源似乎只有中科大和清华两个)
    xpresslink
        52
    xpresslink  
       2018-12-27 11:13:38 +08:00
    这个看个人需求吧。
    非开发人员做科学计算为主的时候用这个比较方便,还有一些非 CS 专业的小白刚上手用的时候比较容易。
    如果是对 LINUX 和各种操作系统都玩得很 6 就没有必要装这么一个臃肿玩意儿了,自己随便搞了。
    l0o0
        53
    l0o0  
       2018-12-27 11:52:05 +08:00
    在我看来,anaconda 的功能包括了 pip 和 virtualenv 的。pip 和 virtualenv 的服务于 python 包,anaconda 还有管理一些包信赖相关的库文件什么的,功能更方便一些。省得一些非 root 下安装各种奇怪的库文件,减少了许多不必要的安装问题。
    fhy1994
        54
    fhy1994  
       2018-12-27 14:15:30 +08:00
    从来不用
    原生 venv + pip 完全够用了
    withablink
        55
    withablink  
       2018-12-27 14:41:55 +08:00
    建议用 miniconda
    wupher
        56
    wupher  
       2018-12-27 15:13:09 +08:00
    喜欢,开箱即用
    RockShake
        57
    RockShake  
       2018-12-27 15:52:04 +08:00
    不喜欢那些配置,直接打开 Jupter Notebook 就能用,挺好的,另外一个 WinPython 感觉也不错
    magicalion
        58
    magicalion  
       2018-12-27 15:55:29 +08:00
    更喜欢用 pip 和 virtualenvwrapper。

    之前被 anaconda 安装要卸载弄过一次,很不方便。
    windcode
        59
    windcode  
    OP
       2018-12-27 17:15:51 +08:00
    @dacapoday 这一点确实有竞争力
    TingHaiJamiE
        60
    TingHaiJamiE  
       2018-12-27 17:19:07 +08:00
    弄一次 caffe,就体会到 anaconda 的好处...
    glaucus
        61
    glaucus  
       2018-12-27 17:21:31 +08:00
    miniconda +1
    yanring
        62
    yanring  
       2018-12-27 18:01:33 +08:00
    喜欢用 pip +1
    但其实 anaconda 有个很好的优点是:诸如 TensorFlow, numpy 之类的包,anaconda 装上来是支持 mkl 的,比 pip 装的要快很多。
    TheWalkingDead
        63
    TheWalkingDead  
       2018-12-27 18:05:11 +08:00
    深度学习的也可以用~一直工作在 anconda 下。

    conda install 和 pip install 安装的 tensorflow-gpu 不太一样,conda 会根据 tf 版本,自动安装不同版本的 cuda 和 cudnn。如果只在电脑上装某一个版本的 cuda 和 cudnn,然后用 pip 安装,很多需要手动编译 tf。

    我司算法人员基本都是 anaconda,如果用 pip,我觉得大概率是算法菜鸟。
    Airy
        64
    Airy  
       2018-12-27 18:23:05 +08:00 via Android
    miniconda,window 下安装 django websocket 总是失败,实在无解使用 miniconda,妈妈再也不用担心我的环境了
    est
        65
    est  
       2018-12-27 18:24:31 +08:00
    miniconda3 不错。去掉 MKL 之后更 mini 了。
    zpaopao
        66
    zpaopao  
       2018-12-27 19:36:00 +08:00
    喜欢用,但我感觉比较臃肿。
    Sasasu
        67
    Sasasu  
       2018-12-27 19:41:55 +08:00
    pyenv 入侵性太强, 会在 path 里放一个假的 python, 依赖真 python 的 cli 工具会炸
    venv 在 py2 下不能嵌套, 会让那些把 source xxx 放在 bashrc 里的人脑袋爆炸
    pipenv 看起来是最好的, 但是不防小版本
    同时这些工具都是用来启动一个服务. 不能让 cli 工具在虚拟环境里运行

    pipsi 是给 cli 工具用的 pipenv, 但是和 pyenv 有冲突

    conda 是大而全的解决方案: 二进制分发+防小版本升级.
    但是和上面的 env 们一个毛病, 不能包装 cli 工具. conda2 里为了一个 py3 必须新建一个环境, 还要起个名字.

    我同时需要 py2.7 py3.6 py3.7 又因为我的环境必须是 mac 所以我的解决办法是: 装个 debuan buster 虚拟机

    其实上面的各种问题装个 linux 都能解决...

    说用 pip 装肯定是算法菜鸟的肯定是不会自己编译软件的, 没有一份 tf 的头文件用啥 tf :)

    https://aur.archlinux.org/packages/python-sonnet-git/ (虽然现在 sonnet 已经没有 c 依赖了 :( )
    TheWalkingDead
        68
    TheWalkingDead  
       2018-12-28 09:30:56 +08:00
    @Sasasu
    #67 我同时需要 py2.7 py3.6 py3.7 又因为我的环境必须是 mac 所以我的解决办法是: 装个 debuan buster 虚拟机
    ---------------------------
    同时需要装这么多,用 conda activate 切换环境不方便?还装三个虚拟机,真是我见过最愚蠢的人了。
    还有,tf 编译有多难?呵呵,tf 这么多版本,你一个个去编译试试? tf 来一个版本,你编译一个?你 leader 不会骂你愚蠢吗。
    Earl
        69
    Earl  
       2018-12-28 09:42:34 +08:00
    @TheWalkingDead 我们这里从学校刚毕业的或者对 python 不太熟的,会用 anaconda 过渡一下,到后面就都自己按需弄环境了。看来我们这里都是越活越菜鸟了啊。
    TheWalkingDead
        70
    TheWalkingDead  
       2018-12-28 10:09:59 +08:00
    @Earl 应该是你司比较 low
    Earl
        71
    Earl  
       2018-12-28 10:48:49 +08:00
    @TheWalkingDead 这个回复倒是很清奇,就好像说只有用 matlab 才高大上,用 c++写算法的都是 low B。
    不过你这个回复倒是很符合你对 V2EX 的认识,哈哈。
    Sasasu
        72
    Sasasu  
       2018-12-28 12:40:33 +08:00
    @TheWalkingDead
    我装了一个虚拟机, 里面有我需要全部 python 版本

    conda 的源码分发在 linux 上没有优势, 反倒有坏处, 比如你的机器没有 AVX2, conda 上的 tf 带 AVX2, 然后就 core dumped 了
    Les1ie
        73
    Les1ie  
       2018-12-28 13:00:16 +08:00
    用不惯 conda.... 也试过 pipenv,还是觉得 pip 更靠谱 :)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5493 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 41ms UTC 08:38 PVG 16:38 LAX 01:38 JFK 04:38
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86