【问题标题】:Why should i use vagrant if i use virtualenv?如果我使用 virtualenv,为什么要使用 vagrant?
【发布时间】:2015-01-20 01:27:16
【问题描述】:

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

我在 UNIX/Linux 环境(分别为 MAC OSX 和 Ubuntu)中编程和部署,我使用 virtualenv 来保持环境隔离。

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

【问题讨论】:

    标签: python django virtual-machine vagrant virtualenv


    【解决方案1】:

    virtualenv 和 Vagrant 的区别在于,virtualenv 只涉及单独的 Python 安装,而 Vagrant 涉及整个机器。

    • virtualenv 将 Python 解释器和 Python 依赖项隔离在一台机器上,因此您可以将多个 Python 项目与它们自己的依赖项一起安装。但是对于机器的其余部分,virtualenv 没有做任何事情:您仍然有使用 Mac OS X / Linux 包管理器安装的全局依赖项/包,并且这些在 virtualenvs 之间共享。

    • Vagrant 指定整个机器:它允许您指定 Linux 发行版、要安装的包以及安装项目要采取的操作。因此,如果你想在该机器上启动一个包含多个 Python 项目的 Vagrant 盒子,你仍然可以使用 virtualenv 来保持 Python 依赖项的分离。

    例如,Mac OS X 上的开发人员和 Ubuntu Linux 上的开发人员可以使用 virtualenv 来安装他们的 Python 项目,但他们需要使用 Vagrant 在本地启动同一台机器(例如,与已部署的服务器)运行完全相同的 Linux 版本,其上安装了相同的包和相同的 Python 项目安装。

    所以,为了回答你的问题,使用 Vagrant 的原因是它允许你在本地创建一个安装了确切包的机器,而 virtualenv 只关心 Python 依赖项。

    【讨论】:

    • 感谢@Simeon 的解释
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多