如果我使用virtualenv,为什么要使用vagrant?

14

我阅读了这个问题Do I need to use virtualenv with Vagrant?,但我想知道相反的情况。

我编写并部署UNIX/Linux环境(分别是MAC OSX和Ubuntu),我使用virtualenv来保持环境隔离。

实际上,我从未遇到过任何问题,但我看到有些人和很多教程建议将它们一起使用,我想知道是否需要使用vagrant以及为什么要使用它,有人可以向我解释吗?

1个回答

26
virtualenv和Vagrant的区别在于virtualenv只涉及分离的Python安装,而Vagrant则涉及整个机器。
virtualenv隔离了一个机器上的Python解释器和Python依赖项,以便您可以将多个Python项目与其自己的依赖项一起安装在一起。但对于机器的其余部分,virtualenv没有任何作用:您仍然有全局依赖项/包,这些是使用Mac OS X / Linux软件包管理器安装的,并且这些是虚拟环境之间共享的。
Vagrant指定整个机器:它允许您指定Linux发行版,要安装的软件包以及执行安装项目的操作。因此,如果您想在该计算机上启动带有多个Python项目的Vagrant框,您仍将使用virtualenv来保持Python依赖项的分离。
例如,在Mac OS X上的开发人员和Ubuntu Linux上的开发人员可以使用virtualenv来保留他们的Python项目安装,但他们需要使用Vagrant在本地启动相同的机器(例如,与部署服务器匹配的Linux发行版),以运行具有相同软件包安装和相同Python项目安装的相同Linux版本。
因此,使用Vagrant的原因是它允许您在本地创建具有完全相同软件包安装的机器,而virtualenv仅关注Python依赖项。

1
感谢 @Simeon 的解释。 - Hasitha Prageeth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接