比较好奇大家喜欢用 anaconda 吗? anaconda 的存在是否有些多此一举呢?
背景:Anaconda 指的是一个开源的 Python 发行版本,其包含了 conda、Python 等 180 多个科学包及其依赖项
个人认为 anaconda 的功能:
但是以上功能原生 python 完全可以自己解决:
那么 anaconda 似乎仅仅是集成了一些功能,让入门变得方便了一些,真的有必要为了一点入门的方便就再套个 conda 去管理 python 吗?
大家的评论我都看了,很有意思~ 感谢大家客观的回复
截止到61楼,我总结了一下大家的讨论。
anaconda 有竞争力的优势:二进制发布,开箱即用,可以免去一些编译麻烦
嫌 anaconda 臃肿的替代方案:miniconda
意向投票(手动统计):
1
TimePPT 2018-12-26 17:56:19 +08:00
科学计算开箱即用,使唤 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 1
当你要在 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
mmixxia 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
huiyifyj 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 更靠谱 :)
|