推荐学习书目
› 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 · Dec 26, 2018 · 16653 views
    This topic created in 2870 days ago, the information mentioned may be changed or developed.

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

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

    个人认为 anaconda 的功能:

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

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

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

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

    Supplement 1  ·  Dec 27, 2018

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

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

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

    嫌 anaconda 臃肿的替代方案:miniconda

    意向投票(手动统计):

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

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

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

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

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

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

    我司算法人员基本都是 anaconda,如果用 pip,我觉得大概率是算法菜鸟。
    Airy
    Airy
    Dec 27, 2018 via Android
    64
    miniconda,window 下安装 django websocket 总是失败,实在无解使用 miniconda,妈妈再也不用担心我的环境了
    est
    est
    Dec 27, 2018
    65
    miniconda3 不错。去掉 MKL 之后更 mini 了。
    zpaopao
    zpaopao
    Dec 27, 2018
    66
    喜欢用,但我感觉比较臃肿。
    Sasasu
    Sasasu
    Dec 27, 2018
    67
    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
    TheWalkingDead
    Dec 28, 2018
    68
    @Sasasu
    #67 我同时需要 py2.7 py3.6 py3.7 又因为我的环境必须是 mac 所以我的解决办法是: 装个 debuan buster 虚拟机
    ---------------------------
    同时需要装这么多,用 conda activate 切换环境不方便?还装三个虚拟机,真是我见过最愚蠢的人了。
    还有,tf 编译有多难?呵呵,tf 这么多版本,你一个个去编译试试? tf 来一个版本,你编译一个?你 leader 不会骂你愚蠢吗。
    Earl
    Earl
    Dec 28, 2018
    69
    @TheWalkingDead 我们这里从学校刚毕业的或者对 python 不太熟的,会用 anaconda 过渡一下,到后面就都自己按需弄环境了。看来我们这里都是越活越菜鸟了啊。
    TheWalkingDead
    TheWalkingDead
    Dec 28, 2018
    70
    @Earl 应该是你司比较 low
    Earl
    Earl
    Dec 28, 2018
    71
    @TheWalkingDead 这个回复倒是很清奇,就好像说只有用 matlab 才高大上,用 c++写算法的都是 low B。
    不过你这个回复倒是很符合你对 V2EX 的认识,哈哈。
    Sasasu
    Sasasu
    Dec 28, 2018
    72
    @TheWalkingDead
    我装了一个虚拟机, 里面有我需要全部 python 版本

    conda 的源码分发在 linux 上没有优势, 反倒有坏处, 比如你的机器没有 AVX2, conda 上的 tf 带 AVX2, 然后就 core dumped 了
    Les1ie
    Les1ie
    Dec 28, 2018
    73
    用不惯 conda.... 也试过 pipenv,还是觉得 pip 更靠谱 :)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1436 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 190ms · UTC 22:43 · PVG 06:43 · LAX 14:43 · JFK 17:43
    ♥ Do have faith in what you're doing.