大家喜欢使用 Python 的 anaconda 吗?

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

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

个人认为 anaconda 的功能:

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

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

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

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


大家喜欢使用 Python 的 anaconda 吗?

70 回复

科学计算开箱即用,使唤 anaconda 挺好的。
另外,pip 在 win 下没 anaconda 友好。


我平时用conda比较多,主要是做数据科学和机器学习项目的时候。Anaconda最大的好处是环境管理和包依赖解决,特别是涉及到一些需要编译的C库(比如NumPy、SciPy、TensorFlow)的时候,conda能直接装二进制包,省去了自己编译的麻烦。

不过它也有缺点:包更新比pip慢,而且默认源在国内可能比较慢。我一般会配清华的镜像源。对于纯Python项目或者用不到那些科学计算库的时候,我直接用venv+pip更轻量。

总的来说,如果你主要做数据科学/ML,Anaconda很省心;如果是Web开发或一般脚本,用官方工具链就够了。

一句话建议:数据科学用conda,一般开发用venv。

windows 下省事。linux 下感觉没必要,有点臃肿

pip 在 win/linux 我都用过,没发现有什么问题啊

太大了,不做科学计算的话用 pipenv 管理环境就够了

+1,太臃肿反而不友好

还要记一套命令,懒了

我也觉得太大,而且它的功能不是很必要

喜欢。

我也喜欢 2333

问题蛮多的 快到弃用的边缘了

科学计算和开发是两个不同的目标人群
开箱即用我觉得很重要的

嗯。。。楼主一看就是没有被电脑上要装 n 个版本的 Python 折磨过的人
以及楼主体验下为了做个科学计算,安装了数不清的各种专业科学包,然后一堆包编译有问题一个个去解决有可怕

用的 miniconda

有 conda mini ?

喜欢~ 多 python 环境隔离~ 开发也好实验也好都方便

emm,多版本 python 我一般用 update-alternatives 管理。科学库的话,需要编译的库用 conda 就能直接安装了吗?

搞科学家计算可以直接上,不是干这个的没必要用。一般管理多版本 Python、虚拟环境用 pyenv、pipenv。如果执意要使用 conda 管理多版本 Python 中、虚拟环境,使用 miniconda。

还有国内那些用 centos 标配 py2 却不给 sudo 权限的。装 py3 没权限,编译又缺包,系统库版本太低。只能用 anaconda,二进制发布,即下即用。也内置了 pip,和 conda 指令互不影响。

pip 和 conda 并不是完全对应关系,前者是包管理,后者既管理包,也管理 Python 版本、虚拟环境。
miniconda 可视为一种 CPython 发行版本,因为普通 pip install conda 获得的 conda 好像是个阉割版。anaconda 可以视作 miniconda 外加预安装各种科学计算包。我猜 ana 是指 analysis ?

conda 省去很多编译的烦恼,许多科学计算库编译起来相当麻烦,还有版本依赖问题

玩梗 anaconda 是水蟒的意思

当你要在 centos 6.5 下跑 tensorflow,glibc 只有 2.12 ,没有 sudo 权限时,就知道 anaconda 的可贵了

而且开箱即用实在是方便

用 miniconda

miniconda3 在 win 上最近版本都有问题,
比如 python 3.7.1 编译时没有 ssl 模块:
https://github.com/AnacondaRecipes/python-feedstock/issues/13

conda install jupyterlab 启动后一堆报错,
pip 反而没问题

可能我比较菜吧 😂

就是比较臃肿一点,但是很多时候也是比较省事,多一种选择吧。

conda 不只是虚拟

pyenv 大法好,conda 太臃肿了。

你应该明白 python 不只是面向程序员。还有其他行业的人在用的。别人需要的是自己操控就可以开的车,而不是还要组装好才能开的车。

Python 版本问题才是 anaconda 主要解决的对象吧,2.X 并未淘汰 3.X 也在用,加上各个小版本,假如电脑用的 3.7 的,工作用 tensorflow,但是 tensorflow 只到 3.6。就很烦

Anaconda 觉得太臃肿了,用的 Miniconda

太臃肿了

科学计算常用的 notebook 一般开发者根本用不到,spyder 同理。
其实这个发行版真的是为科学计算而生的,我开发机根本就一点都用不上,他最方便的就是可以命令行安装其他版本的 Python

用 miniconda

linux 下如果你需要 mkl 的话,还是 anaconda 比较方便
Gentoo 用户请无视我

几乎完全用 conda 替代 venv+pip 的路过~

Windows 上是真方便,Linux 就算了,自己 pip 搞定一切

喜欢,Windows 上用 Anaconda,Linux 上用 Miniconda,科学计算必备,用着方便

可以集中精力做科学计算 而不是配置环境什么的。别人可能不是程序员,不需要浪费时间配置什么虚拟环境管理,依赖什么的。

现在也感觉太臃肿了,包不是特别全。加了 conda-forge 的 channel 导致非常奇异的问题,理论上不能直接 update 大版本的,但我从 python 3.6 升级到了 python 3.7,然而部分软件包还是 3.6 的,没法用。

更喜欢 pip

作为一个新人,用 Anaconda 感觉非常好;特别是 Spyder 和 Notebook 开箱即用,不用浪费时间在环境配置上,先关注语言本身就好。

当然,Python 入门以后就可以换用其它东西来折腾了。

做科学计算就知道好了……有些特殊的科学计算的包要到特定渠道去下才行 要是自己编译真的是要命了

Anaconda 不过就多占些硬盘空间而已,硬盘根本不能算是资源

太臃肿了。解压都满😐😶

Mac / Linux 用啥都行。
Windows 自己玩玩(低端玩家)只用 pip 就够了。最多到 python2 -m pip 和 python3 -m pip 这份上。
Windows 搞科学计算和机器学习,不用 Anaconda,死都不知道怎么死的
我就想到去年我想在 Windows 10 上搭个 style2paints ……编译依赖库,报错几十个,一个个看,读 setup.py 源码和 python 自带的调用 C++ Compiler 的脚本的源码,然后再一点点下断点调试……还有为了编译装了 VS 2017 和 VS 2015 ……我的妈呀……

科学计算用到的 Numpy Scipy sklearn pandas 都是有 C 乃至 Fortran 的依赖的,要自己编译就太麻烦了
另外 conda 的 Numpy 的线性代数运算都是链接到 MKL 的,速度可能比你自己编译的更快

要设国内镜像源速度才会快的( conda 国内源似乎只有中科大和清华两个)

这个看个人需求吧。
非开发人员做科学计算为主的时候用这个比较方便,还有一些非 CS 专业的小白刚上手用的时候比较容易。
如果是对 LINUX 和各种操作系统都玩得很 6 就没有必要装这么一个臃肿玩意儿了,自己随便搞了。

在我看来,anaconda 的功能包括了 pip 和 virtualenv 的。pip 和 virtualenv 的服务于 python 包,anaconda 还有管理一些包信赖相关的库文件什么的,功能更方便一些。省得一些非 root 下安装各种奇怪的库文件,减少了许多不必要的安装问题。

从来不用
原生 venv + pip 完全够用了

建议用 miniconda

喜欢,开箱即用

不喜欢那些配置,直接打开 Jupter Notebook 就能用,挺好的,另外一个 WinPython 感觉也不错

更喜欢用 pip 和 virtualenvwrapper。

之前被 anaconda 安装要卸载弄过一次,很不方便。

弄一次 caffe,就体会到 anaconda 的好处…

miniconda +1

喜欢用 pip +1
但其实 anaconda 有个很好的优点是:诸如 TensorFlow, numpy 之类的包,anaconda 装上来是支持 mkl 的,比 pip 装的要快很多。

深度学习的也可以用~一直工作在 anconda 下。

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

我司算法人员基本都是 anaconda,如果用 pip,我觉得大概率是算法菜鸟。

miniconda,window 下安装 django websocket 总是失败,实在无解使用 miniconda,妈妈再也不用担心我的环境了

miniconda3 不错。去掉 MKL 之后更 mini 了。

喜欢用,但我感觉比较臃肿。

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 依赖了 :( )


#67 我同时需要 py2.7 py3.6 py3.7 又因为我的环境必须是 mac 所以我的解决办法是: 装个 debuan buster 虚拟机
---------------------------
同时需要装这么多,用 conda activate 切换环境不方便?还装三个虚拟机,真是我见过最愚蠢的人了。
还有,tf 编译有多难?呵呵,tf 这么多版本,你一个个去编译试试? tf 来一个版本,你编译一个?你 leader 不会骂你愚蠢吗。

我们这里从学校刚毕业的或者对 python 不太熟的,会用 anaconda 过渡一下,到后面就都自己按需弄环境了。看来我们这里都是越活越菜鸟了啊。

应该是你司比较 low

这个回复倒是很清奇,就好像说只有用 matlab 才高大上,用 c++写算法的都是 low B。
不过你这个回复倒是很符合你对 V2EX 的认识,哈哈。


我装了一个虚拟机, 里面有我需要全部 python 版本

conda 的源码分发在 linux 上没有优势, 反倒有坏处, 比如你的机器没有 AVX2, conda 上的 tf 带 AVX2, 然后就 core dumped 了

用不惯 conda… 也试过 pipenv,还是觉得 pip 更靠谱 :)

回到顶部