使用Django进行Web开发的虚拟环境的最佳实践?

use*_*981 5 django web-applications virtualenv vagrant

这是一个Django和Python,也许只是一个普通的Web开发问题.

使用virtualenv vs vagrant vs virtual box等有什么区别?

我有点困惑于何时使用哪一个:/我一直在使用虚拟环境并为不同的项目创建新的虚拟环境....这是正确的方法吗?每个项目一个virtualenv?

我不确定流浪汉何时何地发挥作用......我应该设置流浪汉,然后使用virtualenv?

这可能是一个愚蠢的问题,但是......如果我和其他人一起做这个项目的话.他们是否也必须建立虚拟环境?只是为了合作?

我们在本地机器上工作然后将它推入主分支是不是更有意义?我只是有点困惑....我觉得我做错了......

感谢大家的回复!

Bra*_*don 8

Virtualenv为您安装了一个本地沙箱,用于安装Python模块.

Vagrant是一个用于创建虚拟机的自动化工具.

VirtualBox是一个免费的开源环境,用于运行Vagrant创建的虚拟机.

Virtualenv真的是你需要在本地机器上进行沙盒开发.我们在工作中使用Vagrant来自动创建VM.这样,进入项目的新开发人员基本上没有配置,无法开始工作.

如果您正在与其他开发人员合作,他们不需要执行上述任何操作来处理您的Django项目,但是如果涉及很多配置无法通过pip和requirements.txt完成,那么你可能会看看Vagrant来缓解一些自动化.

但是你的假设是正确的,你可以只在当地的分支机构工作并推回回购.其他一切都只是锦上添花.


And*_*ter 5

Virtualenv是一个python构造,它包含一组特定的包,与您的系统包分开.您的操作系统附带的Python及其软件包的版本或单独安装的软件包是"系统软件包".

Virtualbox完全不同 - 它是一个虚拟机,一个整箱操作系统.

我不熟悉Vagrant.

你需要的只是virtualenv.为每个项目创建一个新的virtualenv(它们非常轻量级!)您需要这样做,因为virtualenv的重点是隔离项目所需的那些软件包的确切包和版本.然后激活virtualenv并用于pip install安装所需的软件包,大概从Django本身开始.

获得所需的所有软件包后,可以使用pip freeze > requirements.txt创建名为requirements.txt的文件来记录您决定使用的所有软件包.

当其他人在您的项目上进行协作时,他们可以启动virtualenv,将代码拉入其中,然后运行pip install -r requirements.txt以复制您的环境.他们甚至可以修改requirements.txt,通过您的版本控制系统将其推送给您,您可以pip install -r requirements.txt自己运行以修改您的环境以匹配他们的更改.

这一切都是必不可少的,因为没有virtualenv,例如,在您的计算机上有一个需要Django 1.4的项目和一个需要Django 1.5的项目的问题变得非常复杂.

Virtualenv并不是一个完整的操作系统,只是一个python环境,所以即使你使用它,你仍然在使用你的本地机器.