
首先说一下为什么会出现Anaconda这个工具。在初学者来说,装最新版本的python及用到的第三方库是没有问题的,因为没有什么情况是必须用老版本的。
但是在真实的工程场景下,在写python程序时会调用多个第三方库(比如你提到的PyQT5之类的)。但是第三方库会时不时升级,甚至有些接口出现变化。往往,在新版本的第三方库下就不能运行了。也就是说,你写的程序可能依赖于特定版本的第三方库。
而且,很多用户往往有不止一个项目,每个项目依赖的包不一样。比如,你有一个爬虫项目,装了些例如Selenium之类的包;另一个项目是做一个小游戏,你用到了PyGame之类的。某些情况下,会出现包冲突的情况。比如一个项目你装了最新版本的基于python3.8的第三方库,但是另一个项目用到的第三方库因为更新不及时,还只能在python3.6下运行。
这种情况下,一种方法是,在不同位置装多个python。显然,这种方法有些笨拙。因此,有人专门为了解决这种问题写了创建和管理python虚拟环境的库,比如pipenv和virtualenv。Anaconda则是更为方便和强大的虚拟环境管理工具。
讲到数据分析,我可以给你提供一个真实发生的场景,说明为什么必须用到包管理。三年前,我写了一些Python程序分析了一些生物学数据。前一段时间,我想调整一些参数重新分析一下数据,但是因为电脑升级等原因,之前写的python程序因为依赖于老版本的第三方库,已经不能运行了。这时候,有两种解决方案,一种是把老版本的库重装一遍(实际上,使用anaconda重装一个虚拟环境非常简单);另一种是,我把整个程序针对新版本修改和升级。对于年代久远的代码,重新梳理和升级显然会花费很多时间。
数据分析过程中,有时你需要和别人交流,把代码发给别人,别人不一定就能运行,你必须告诉别人,你用了哪些第三方库,具体是什么版本。(比如用pip freeze生成requirements.txt)
总之,即使不用Anaconda,也应该用pipenv或者virtualenv,在虚拟环境上工作,避免经常重装python或者装多个版本的python。
Anaconda或者miniconda实际上不仅可以管理python的虚拟环境,还可以管理R语言的虚拟环境,数据分析领域,还会经常用到R的包。
具体安装Anaconda/miniconda,可以看这里:
如果实在要用pip安装Spyder,看这里:
不过,正如官方文档所说:
【官方警告】使用pip安装会碰到大量tricky的问题。如果不想在这上面折腾,强烈建议不要用pip来安装。
这也是为什么他们捆绑Anaconda安装的原因,因为Anaconda帮你解决了所有潜在的包依赖、编译、安装的问题。
另外,与你的印象不同,Anaconda不是一个软件商店,它是一个开发环境管理工具,只解决开发环境相关的问题。
