与手动安装相比,各种Python包(EPD/Anaconda)的相对优点/缺点是什么?
我已经安装了EPD academic,我没有任何问题。它提供了我认为我将永远需要的更多软件包,并且使用enpkg enstaller进行更新非常容易。然而,环保署的学术执照需要每年更新一次,而免费版本并不容易更新。
目前,我只使用了少数几个包,比如Pandas、NumPy、SciPy、matplotlib、IPython、Statsmodels及其各自的依赖项。
对于这种有限的使用,我最好使用手动安装和pip安装——升级“软件包”
,还是捆绑包提供除此之外的任何功能?
2015年更新:现在我总是推荐蟒蛇。它包括许多用于科学计算、数据科学、网络开发等的Python包。它还提供了一个高级环境工具,conda
,允许在环境之间轻松切换,甚至在Python 2和3之间。它的更新速度也非常快,只要一个包的新版本发布了,你可以做conda更新Packagename
来更新它。
原始答复如下:
在Windows上,复杂的是编译数学包,所以我认为只有当你只对Python
感兴趣而没有其他包时,手动安装才是一个可行的选择。
因此,最好选择EPD(现在的Canopy)或Anaconda。
Anaconda拥有大约270个软件包,其中包括对大多数科学应用和数据分析最重要的软件包,即NumPy、SciPy、Pandas、IPython、matplotlib、Scikit learn。所以如果这对你来说足够的话,我会选择水蟒。
相反,如果您对其他软件包感兴趣,甚至如果您使用任何Enthound软件包(例如Chaco对于实时数据可视化非常有用),那么EPD/Canopy可能是更好的选择。学术版在基本安装中有更多的软件包,在存储库中有更多的软件包。巨蟒也包括查科。
去年我尝试了各种Windows发行版,试图为我的工作环境找到一个可使用的版本(在代理之后,但无法访问代理配置)。
以下是我的经验反馈:
EPD/Canopy:我们有EPD的许可证,但它很旧,由于奇怪的代理情况,我们无法更新。为了添加一些软件包(比如xlrd/xlwt的最新版本),我从源代码处编译。为了更新SciPy和NumPy,我使用了来自的预编译安装程序http://www.lfd.uci.edu/~gohlke/pythonlibs/,但它有时会破坏兼容性。我喜欢有一个完全配置的Py2exe和Cython,它只是开箱即用。
过了一段时间,我试着安装免费版本的Canopy,但它缺少Cython和py2exe以及我需要的一些特定的高级软件包,所以我从未真正使用过它。我的一些同事购买了完整的Canopy许可证,但我们仍然不确定他们将如何更新。。。
Python(x, y):不想纠结于许可证,我在家里安装了Python(x, y)。我现在注意到的唯一缺点是标准安装要求您选择您想要的包。这既是好的,也是坏的,因为我不能确定我的客户端会有和我安装时完全相同的配置。可以在Python(x, y)中安装En想法工具套件。使用Python(x, y)一段时间后,我才注意到我安装了32位版本。虽然他们的网站上还不清楚,但截至2015年7月,他们似乎还没有64位版本。我要卸载它,并获得一个64位分发。
水蟒:当我第一次写这篇文章时,水蟒似乎还没有足够的包裹。几年后,它看起来好多了,我要试一试!
手册:为了避免与旧EPD版本的版本兼容性问题,我最终使用了手动Python安装,并从上面链接的LFD网站添加了额外的包。它工作得很好,但是我仍然建议需要高级包(如GDAL或PyFITS)的新用户使用Canopy。
总结:如果你去天篷,获得正式执照(学术或购买)。否则,使用Python(x,y),它最终会是相同的。
在Ubuntu上:不需要发行版。这都是相对较新的( /-6个月是可以忍受的)和预编译的。你只需要执行sudo apt-get安装python python-sipy
,它就在那里!最先进的软件包也在那里。
其他答案很好地涵盖了这一领域,因此我只想谈谈一个尚未有人提到的方面。它可能是相当合适的,但对于Linux系统下的一些人来说,它可能会制造或破坏蟒蛇或树冠:
Anaconda Python构建使用UCS4 Unicode模式,而Enthout Canopy使用UCS2。
实际上,这意味着,如果您依赖于任何因任何原因无法自行编译的扩展(例如预编译的专有库),如果它们碰巧不是为具有相同模式的Python版本构建的,您可能迟早会遇到类似于未定义符号:PyUnicodeUCS4\u AsUTF8String
的错误。
根据PEP 0513,UCS4目前似乎更受欢迎和推荐。此外,整个UCS兼容性问题似乎只影响2。x和