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