我看过这个问题Do I need to use virtualenv with Vagrant?但我想知道相反的。为什么我应该使用vagrant如果我使用virtualenv?
我编程并部署到UNIX/Linux环境(分别为MAC OSX和Ubuntu),并使用virtualenv保持环境隔离。
其实我从来没有遇到任何问题,但我看到一些人和很多教程,建议一起使用它们,我想知道是否和为什么要使用流浪者,有人可以向我解释吗?
我看过这个问题Do I need to use virtualenv with Vagrant?但我想知道相反的。为什么我应该使用vagrant如果我使用virtualenv?
我编程并部署到UNIX/Linux环境(分别为MAC OSX和Ubuntu),并使用virtualenv保持环境隔离。
其实我从来没有遇到任何问题,但我看到一些人和很多教程,建议一起使用它们,我想知道是否和为什么要使用流浪者,有人可以向我解释吗?
virtualenv和Vagrant之间的区别在于,virtualenv只是关于单独的Python安装,而Vagrant是关于整个机器。
的virtualenv隔离Python解释器和一台计算机上Python的依赖关系,因此您可以用自己的依赖安装多个Python项目彼此旁边。但是对于机器的其余部分,virtualenv不会做任何事情:您仍然拥有使用Mac OS X/Linux软件包管理器安装的全局依赖项/软件包,并且它们在virtualenvs之间共享。
流浪者指定整个机器:它允许您指定Linux发行版,要安装的软件包以及要安装该项目的操作。所以如果你想在这台机器上启动一个带有多个Python项目的Vagrant框,你仍然可以使用virtualenv来保持Python依赖关系的分离。
例如,在Mac OS X开发人员,在Ubuntu Linux开发人员可以使用的virtualenv保持他们的Python项目安装,但他们会需要使用放浪要本机启动在同一台机器(例如,一个Linux分布与部署的服务器相匹配)运行完全相同的Linux版本,并在其上安装相同的软件包并使用相同的Python项目安装。
所以,回答你的问题,使用Vagrant的原因是它允许你在本地创建一个安装了确切软件包的机器,而virtualenv只关心它自己的Python依赖关系。
感谢您的解释@Simeon – 2017-05-17 15:47:58