您现在的位置是:首页 > 文章详情

有一种痛叫编码一小时,环境部一天

日期:2018-10-21点击:401

初学者最关心的第一个问题是:

什么是Anaconda?

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

但它不仅仅是一个包的集合,它其实还有一个大包的思想,即一种虚拟的环境。用一个不恰当的比喻,它是一个Python专用的环境虚拟机。

你可以在一台机器上安装不同的Python环境,每个环境的Python版本可以相同也可以不同,在每个Python环境下也可以安装不同的包。

举个例子,我的某一个项目需要使用Python3.6,又一个项目需要Python3.7,还有一个项目需要Python2.7。这种情况下,我可以在我的计算机上创建三个环境,三个环境互不影响,并且可以很简单地从一个环境切换到另外一个环境。

Anaconda是有桌面版的,即可视化交互,不过我个人更喜欢用命令行,所以这里用命令行给大家做演示。

比如用以下命令可以创造一个全新的Python环境,我们可以指定环境的名称,还可以指定Python的版本。

比如我现在新创建的环境名称叫:twofat(二胖),Python版本为3.5。

conda create --name twofat python=3.5

稍等几秒后,就安装好了。

579c368a94cc1fe99bd229dda2e112f0717ccb43

现在我们看看我的环境中有几个Python版本了:

c748982fba535a7b2b6ebbb161107e307385ca14

一共有两个Python版本了。

第一个版本是基础版本,所以在环境路径前有一个“*”的标志。默认环境的Python3.6.4:

990a404b3efa954c20c67aedf7e75b644d98852c

现在我们切换到刚刚新生成的第二个Python版本:

76e0c437f02f69e937fde7459c069b4e517bd446

可以看到“*”符号已经跑到twofat这个环境前了,Python版本也变成3.5.6,真的实现了一键切换版本,十分方便。

除此之外,Anaconda已经包含了200余个Python包,不管你是做数据分析还是Python后端开发,都很方便。既然有这么好用的东西,现在就动手去了解它吧,为什么还要等明天呢?

如果说Anaconda是对Python开发环境的虚拟,那么可以说Docker是对整个系统的虚拟,但它并不是我们所说的那种普通虚拟机。

很多在校大学生的笔记本电脑上装的是Windows系统,但是当学习《操作系统》等相关课程的时候,会要求使用Linux系统,这时候怎么办?

大多数人的选择是VMware,一款很牛逼的虚拟机,它可以在Windows机器上虚拟出一个Linux系统,也可以在Mac系统中虚拟出一个Windows系统。

32ef170dd3f6d645012831e4d469772306f1a7e6

VMware对学习者来说无疑是一个好得不能再好的工具,不过它也有一个缺点——它的性能就如同下面这张图描述的那样:

95138683f45f30191eacb70caf2f25412a252240

在实际开发环境中肯定不能这样搞,在物理机中使用虚拟机会使机器性能大打折扣。但我们直接在服务器上进行开发又不现实,开发环境和部署环境或多或少会有一些区别,很容易因为环境不一致而部署不上。

不只我在开头提到的那个问题,其实我还遇见过很多类似的问题,比如GCC版本不一致、OpenSSL版本不对等等,简直蛋疼的要命。我们常需要耗费很多精力来解决因为环境依赖而产生的很多问题。

所以容器虚拟化这种技术应运而生,Docker将软件和其所依赖的环境一起打包成镜像进行交付,这样就避免了因为环境不同而产生的依赖问题。

其实用过虚拟机的同学应该知道什么是镜像。当我们安装虚拟机的时候需要下载一些操作系统的镜像,它其实就是把操作系统以及操作系统上默认安装的软件进行了打包。镜像就是这个意思。

那么问题来了,既然传统的虚拟机和Docker都是打包镜像,那为什么要选Docker而不选择VMware等虚拟机呢?

传统的虚拟机是通过中间层将一台或多台独立的机器虚拟地运行在物理机上,而容器是直接运行在操作系统内核之上的用户空间,性能是传统虚拟机不可比拟的。

不过,有时候优点也是缺点,前文咱们讲到了,VMware等虚拟机可以在Windows系统之上再虚拟一个Linux系统,也可以在Mac系统中虚拟Windows系统。可是Docker不行,正是由于它直接运行在操作系统的内核之上,所以它只能运行与底层宿主机相同或者相似的操作系统。简单来说就是,Linux物理机只能运行Linux容器。

所以,学习《操作系统》等课程的时候,我们可以选择VMware等软件,而在实际开发中,还是使用Docker吧,这就可以避免我在前文中提到的我遇见的那些问题啦

“工欲善其事必先利其器”。

我们不能一味地只去学习编程,有时候还是需要停下来学习使用一些工具,这样会让我们的学习和工作效率大大提升。

我这里只是告诉大家有这么个东西可以这么去用,具体的学习过程,还得靠大家,百度一下,你就知道。

本文作者:二胖并不胖

本文来自云栖社区合作伙伴“大数据前沿”,了解相关信息可以关注“大数据前沿

原文链接:https://yq.aliyun.com/articles/655925
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章