
比较好奇大家喜欢用 anaconda 吗? anaconda 的存在是否有些多此一举呢?
背景:Anaconda 指的是一个开源的 Python 发行版本,其包含了 conda、Python 等 180 多个科学包及其依赖项
个人认为 anaconda 的功能:
但是以上功能原生 python 完全可以自己解决:
那么 anaconda 似乎仅仅是集成了一些功能,让入门变得方便了一些,真的有必要为了一点入门的方便就再套个 conda 去管理 python 吗?
大家的评论我都看了,很有意思~ 感谢大家客观的回复
截止到61楼,我总结了一下大家的讨论。
anaconda 有竞争力的优势:二进制发布,开箱即用,可以免去一些编译麻烦
嫌 anaconda 臃肿的替代方案:miniconda
意向投票(手动统计):
1 TimePPT PRO 科学计算开箱即用,使唤 anaconda 挺好的。 另外,pip 在 win 下没 anaconda 友好。 |
2 wsh1108 2018 年 12 月 26 日 windows 下省事。linux 下感觉没必要,有点臃肿 |
4 welkinzh 2018 年 12 月 26 日 太大了,不做科学计算的话用 pipenv 管理环境就够了 |
6 jiangnanyanyu 2018 年 12 月 26 日 via Android 还要记一套命令,懒了 |
8 wuhang89 2018 年 12 月 26 日 喜欢。 |
9 Bryan0Z 2018 年 12 月 26 日 via Android 我也喜欢 2333 |
10 shadownet 2018 年 12 月 26 日 via iPhone 问题蛮多的 快到弃用的边缘了 |
11 hahastudio 2018 年 12 月 26 日 科学计算和开发是两个不同的目标人群 开箱即用我觉得很重要的 |
12 hakono 2018 年 12 月 26 日 via Android 嗯。。。楼主一看就是没有被电脑上要装 n 个版本的 Python 折磨过的人 以及楼主体验下为了做个科学计算,安装了数不清的各种专业科学包,然后一堆包编译有问题一个个去解决有可怕 |
13 justou 2018 年 12 月 26 日 via Android 用的 miniconda |
14 wzw 2018 年 12 月 26 日 via iPhone 有 conda mini ? |
15 skyc 2018 年 12 月 26 日 喜欢~ 多 python 环境隔离~ 开发也好实验也好都方便 |
16 windcode OP @hakono emm,多版本 python 我一般用 update-alternatives 管理。科学库的话,需要编译的库用 conda 就能直接安装了吗? |
17 Kobayashi 2018 年 12 月 26 日 via Android 搞科学家计算可以直接上,不是干这个的没必要用。一般管理多版本 Python、虚拟环境用 pyenv、pipenv。如果执意要使用 conda 管理多版本 Python 中、虚拟环境,使用 miniconda。 |
18 dacapoday 2018 年 12 月 26 日 还有国内那些用 centos 标配 py2 却不给 sudo 权限的。装 py3 没权限,编译又缺包,系统库版本太低。只能用 anaconda,二进制发布,即下即用。也内置了 pip,和 conda 指令互不影响。 |
19 Kobayashi 2018 年 12 月 26 日 via Android pip 和 conda 并不是完全对应关系,前者是包管理,后者既管理包,也管理 Python 版本、虚拟环境。 miniconda 可视为一种 CPython 发行版本,因为普通 pip install conda 获得的 conda 好像是个阉割版。anaconda 可以视作 miniconda 外加预安装各种科学计算包。我猜 ana 是指 analysis ? |
20 hsfzxjy 2018 年 12 月 26 日 via Android conda 省去很多编译的烦恼,许多科学计算库编译起来相当麻烦,还有版本依赖问题 |
22 Bismarrck 2018 年 12 月 26 日 当你要在 centos 6.5 下跑 tensorflow,glibc 只有 2.12 ,没有 sudo 权限时,就知道 anaconda 的可贵了 而且开箱即用实在是方便 |
23 ClutchBear 2018 年 12 月 26 日 用 miniconda |
24 orangeade 2018 年 12 月 26 日 miniconda3 在 win 上最近版本都有问题, 比如 python 3.7.1 编译时没有 ssl 模块: https://github.com/AnacondaRecipes/python-feedstock/issues/13 conda install jupyterlab 启动后一堆报错, pip 反而没问题 |
26 1nakaELYBbsXbZxY 2018 年 12 月 26 日 就是比较臃肿一点,但是很多时候也是比较省事,多一种选择吧。 |
27 labnotok 2018 年 12 月 26 日 via Android conda 不只是虚拟 |
28 GoLand 2018 年 12 月 26 日 pyenv 大法好,conda 太臃肿了。 |
29 fan2006 2018 年 12 月 26 日 你应该明白 python 不只是面向程序员。还有其他行业的人在用的。别人需要的是自己操控就可以开的车,而不是还要组装好才能开的车。 |
30 zhangzhe532 2018 年 12 月 26 日 via Android Python 版本问题才是 anaconda 主要解决的对象吧,2.X 并未淘汰 3.X 也在用,加上各个小版本,假如电脑用的 3.7 的,工作用 tensorflow,但是 tensorflow 只到 3.6。就很烦 |
31 JackieMe 2018 年 12 月 26 日 via Android Anaconda 觉得太臃肿了,用的 Miniconda |
32 ex2vkf 2018 年 12 月 26 日 太臃肿了 |
33 ppphp 2018 年 12 月 26 日 anaconda 是 windows python 唯一解决方案,mac 和 linux 上各种选择就多了去了,甚至可以按需搭配 |
34 Vegetable 2018 年 12 月 26 日 via Android 科学计算常用的 notebook 一般开发者根本用不到,spyder 同理。 其实这个发行版真的是为科学计算而生的,我开发机根本就一点都用不上,他最方便的就是可以命令行安装其他版本的 Python |
35 wwhio 2018 年 12 月 26 日 用 miniconda |
36 congeec 2018 年 12 月 27 日 linux 下如果你需要 mkl 的话,还是 anaconda 比较方便 Gentoo 用户请无视我 |
37 widewing 2018 年 12 月 27 日 via Android 几乎完全用 conda 替代 venv+pip 的路过~ |
38 lxmmmm 2018 年 12 月 27 日 via Android Windows 上是真方便,Linux 就算了,自己 pip 搞定一切 |
39 sola97 2018 年 12 月 27 日 tensorflow |
40 youngxu 2018 年 12 月 27 日 via Android 喜欢,Windows 上用 Anaconda,Linux 上用 Miniconda,科学计算必备,用着方便 |
41 superzou 2018 年 12 月 27 日 via Android 可以集中精力做科学计算 而不是配置环境什么的。别人可能不是程序员,不需要浪费时间配置什么虚拟环境管理,依赖什么的。 |
42 lovestudykid 2018 年 12 月 27 日 现在也感觉太臃肿了,包不是特别全。加了 conda-forge 的 channel 导致非常奇异的问题,理论上不能直接 update 大版本的,但我从 python 3.6 升级到了 python 3.7,然而部分软件包还是 3.6 的,没法用。 |
43 ZRS 2018 年 12 月 27 日 更喜欢 pip |
44 hscui 2018 年 12 月 27 日 作为一个新人,用 Anaconda 感觉非常好;特别是 Spyder 和 Notebook 开箱即用,不用浪费时间在环境配置上,先关注语言本身就好。 当然,Python 入门以后就可以换用其它东西来折腾了。 |
45 twl007 2018 年 12 月 27 日 via iPhone 做科学计算就知道好了……有些特殊的科学计算的包要到特定渠道去下才行 要是自己编译真的是要命了 |
46 silkriver 2018 年 12 月 27 日 Anaconda 不过就多占些硬盘空间而已,硬盘根本不能算是资源 |
47 fengyj 2018 年 12 月 27 日 via Android 太臃肿了。解压都满 |
48 jiejiss 2018 年 12 月 27 日 Mac / Linux 用啥都行。 Windows 自己玩玩(低端玩家)只用 pip 就够了。最多到 python2 -m pip 和 python3 -m pip 这份上。 Windows 搞科学计算和机器学习,不用 Anaconda,死都不知道怎么死的 我就想到去年我想在 Windows 10 上搭个 style2paints ……编译依赖库,报错几十个,一个个看,读 setup.py 源码和 python 自带的调用 C++ Compiler 的脚本的源码,然后再一点点下断点调试……还有为了编译装了 VS 2017 和 VS 2015 ……我的妈呀…… |
49 zst 2018 年 12 月 27 日 via Android 嫌臃肿可以用 miniconda。。。。但是 pip 是真的烦。。。总是莫名其妙报错。。。还不如 conda 省事....但是 conda 速度很慢不知道为啥 |
50 qcts33 2018 年 12 月 27 日 科学计算用到的 Numpy Scipy sklearn pandas 都是有 C 乃至 Fortran 的依赖的,要自己编译就太麻烦了 另外 conda 的 Numpy 的线性代数运算都是链接到 MKL 的,速度可能比你自己编译的更快 |
51 silkriver 2018 年 12 月 27 日 要设国内镜像源速度才会快的( conda 国内源似乎只有中科大和清华两个) |
52 xpresslink 2018 年 12 月 27 日 这个看个人需求吧。 非开发人员做科学计算为主的时候用这个比较方便,还有一些非 CS 专业的小白刚上手用的时候比较容易。 如果是对 LINUX 和各种操作系统都玩得很 6 就没有必要装这么一个臃肿玩意儿了,自己随便搞了。 |
53 l0o0 2018 年 12 月 27 日 在我看来,anaconda 的功能包括了 pip 和 virtualenv 的。pip 和 virtualenv 的服务于 python 包,anaconda 还有管理一些包信赖相关的库文件什么的,功能更方便一些。省得一些非 root 下安装各种奇怪的库文件,减少了许多不必要的安装问题。 |
54 fhy1994 2018 年 12 月 27 日 从来不用 原生 venv + pip 完全够用了 |
55 withablink 2018 年 12 月 27 日 建议用 miniconda |
56 wupher 2018 年 12 月 27 日 喜欢,开箱即用 |
57 RockShake 2018 年 12 月 27 日 不喜欢那些配置,直接打开 Jupter Notebook 就能用,挺好的,另外一个 WinPython 感觉也不错 |
58 magicalion 2018 年 12 月 27 日 更喜欢用 pip 和 virtualenvwrapper。 之前被 anaconda 安装要卸载弄过一次,很不方便。 |
60 TingHaiJamiE 2018 年 12 月 27 日 弄一次 caffe,就体会到 anaconda 的好处... |
61 glaucus 2018 年 12 月 27 日 miniconda +1 |
62 yanring 2018 年 12 月 27 日 喜欢用 pip +1 但其实 anaconda 有个很好的优点是:诸如 TensorFlow, numpy 之类的包,anaconda 装上来是支持 mkl 的,比 pip 装的要快很多。 |
63 TheWalkingDead 2018 年 12 月 27 日 深度学习的也可以用~一直工作在 anconda 下。 conda install 和 pip install 安装的 tensorflow-gpu 不太一样,conda 会根据 tf 版本,自动安装不同版本的 cuda 和 cudnn。如果只在电脑上装某一个版本的 cuda 和 cudnn,然后用 pip 安装,很多需要手动编译 tf。 我司算法人员基本都是 anaconda,如果用 pip,我觉得大概率是算法菜鸟。 |
64 Airy 2018 年 12 月 27 日 via Android miniconda,window 下安装 django websocket 总是失败,实在无解使用 miniconda,妈妈再也不用担心我的环境了 |
65 est 2018 年 12 月 27 日 miniconda3 不错。去掉 MKL 之后更 mini 了。 |
66 zpaopao 2018 年 12 月 27 日 喜欢用,但我感觉比较臃肿。 |
67 Sasasu 2018 年 12 月 27 日 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 依赖了 :( ) |
68 TheWalkingDead 2018 年 12 月 28 日 @Sasasu #67 我同时需要 py2.7 py3.6 py3.7 又因为我的环境必须是 mac 所以我的解决办法是: 装个 debuan buster 虚拟机 --------------------------- 同时需要装这么多,用 conda activate 切换环境不方便?还装三个虚拟机,真是我见过最愚蠢的人了。 还有,tf 编译有多难?呵呵,tf 这么多版本,你一个个去编译试试? tf 来一个版本,你编译一个?你 leader 不会骂你愚蠢吗。 |
69 Earl 2018 年 12 月 28 日 @TheWalkingDead 我们这里从学校刚毕业的或者对 python 不太熟的,会用 anaconda 过渡一下,到后面就都自己按需弄环境了。看来我们这里都是越活越菜鸟了啊。 |
70 TheWalkingDead 2018 年 12 月 28 日 @Earl 应该是你司比较 low |
71 Earl 2018 年 12 月 28 日 @TheWalkingDead 这个回复倒是很清奇,就好像说只有用 matlab 才高大上,用 c++写算法的都是 low B。 不过你这个回复倒是很符合你对 V2EX 的认识,哈哈。 |
72 Sasasu 2018 年 12 月 28 日 @TheWalkingDead 我装了一个虚拟机, 里面有我需要全部 python 版本 conda 的源码分发在 linux 上没有优势, 反倒有坏处, 比如你的机器没有 AVX2, conda 上的 tf 带 AVX2, 然后就 core dumped 了 |
73 Les1ie 2018 年 12 月 28 日 用不惯 conda.... 也试过 pipenv,还是觉得 pip 更靠谱 :) |