开发为什么不用anaconda?

同学,搭建Python环境并不需要多少时间,去Python官网下载最新版本的解释器、源码包,然后直接安装就行了啊。

如果需要安装其它的包,再去命令行用pip大法:pip install numpy pandas matplotlib, 多灵活,多省事,何来麻烦一说?你装个Anaconda,好几百兆,而且许多包你不一定用得着。

从我的角度看,anaconda解决了一些难不倒我的问题,而又额外带来了一些我不愿碰的问题,所以我不用它。

我是一个Python应用开发者,自诩为高手,不是数据分析师,也不是AI工程师。偶尔做一些数据分析,但没有协作者;偶尔serve和使用一些AI模型,但不需要自己做训练,也没有协作者。因此得出上述结论,更偏向于使用原生Python的生态。

anaconda是一个成功的产品。它最大的特点是All in one的设计思路,给了用户一个开箱即用的产品。并且,这个产品本身即可成为团队协作的标准,确保在我这里运行的结果,在你那里也能轻松复现。

但是对我来说,从零配置原生的Python环境完毕,这个522MB的安装包(以Anaconda3-2020.02-Linux-x86_64.sh为例)都还没下载完。(这个安装包在解压、安装后,总大小3.4GB。)

考虑工程与发布

数据分析师的产出是PPT,AI工程师的产出是论文或模型,因此对某些事不敏感。

我作为Python应用开发者,要考虑一个软件产品从开发到上线的全部流程。基于pip的Python原生生态,在这方面是比较成熟的,而conda相比之下就比较冷门,并且不具备决定性的技术优势。(前面说的conda+pip+apt,如果能优化为仅conda,就能称为决定性的技术优势,战胜pip+apt,然而并没有。)如何做技术选型,是一件显而易见的事。

很纠结Anaconda浪费了一些硬盘空间?

不好意思,在大多数Python应用所有环境总共只有100MB以内(包括系统包、Python运行环境与应用本身)的情况下,一个光Python运行环境就有3.4G的东西,真的大到不能忍。从两个角度来解释吧:

作为一家大公司,以Docker镜像方式发布产品。每次产品上线、扩容时,需要额外复制这么大的无用文件,空耗空间与时间,影响发布效率。我怎么和上头吹,我的秒级发布、秒级回退、秒级扩容?而且还要为这么多组件的安全、维护、开源协议操心。

作为一个小开发者,买个1核1G的服务器,自带40G系统硬盘。由于没什么点击量,因此一台服务器本来预备serve几十个服务,基础镜像也往往挑选小而冷的Alpine。这个Anaconda一上来就是3.4G,小家小业折腾不起啊!

讲真,anaconda不是给码农用的

我还停留在 virtualenv.
而且不打算使用 anaconda.

如果不搞机器学习之类的,为啥要用 anaconda ?我一直挺反感那些无脑推荐 anaconda 的。有人说用 anaconda 主要是用它提供的虚拟环境,难道 pyenv、virtualenv 做不到?

原来用 conda,转回用 virtual env 了

###########

其实在工程使用中,我们有一套控制python环境的有效实践。

对于开发环境来说其实就是pyenv+venv,由代码控制所有依赖的版本和生产环境保持一致。

这anaconda就算了,麻烦的一笔,概念还一堆堆。花时间手工配置,只能说没有用合适的工具而已。

############

原文地址:https://www.cnblogs.com/andy0816/p/14333447.html