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

    比较好奇大家喜欢用 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  
       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  
       2018-12-26 19:19:16 +08:00
    @windcode 可能我比较菜吧 😂
    mmixxia
        26
    mmixxia  
       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 不过就多占些硬盘空间而已,硬盘根本不能算是资源
    huiyifyj
        47
    huiyifyj  
       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   ·   实用小工具   ·   1199 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 18:00 · PVG 02:00 · LAX 10:00 · JFK 13:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.