使用virtualenv和pip在一个命令中设置新的开发环境

时间:2013-10-14 08:19:47

标签: python django virtualenv pip

我们希望自动设置新的开发环境。

有一个项目。我们使用名称方案coreapp_c1(customer1的简称) 该项目很小。它包含配置(settings.py(django))和requirements.txt

我们使用以下步骤:

  1. 创建virtualenv
  2. pip install -e git ...#egg = coreapp_c1
  3. pip install -r src / coreapp-c1 / requirements.txt
  4. 不幸的是,还有一些其他步骤需要完成:

    创建一个postgres-DB,插入一个init-script,创建一个rabbitMQ队列,......这不能像普通用户那样完成。

    做植物需要以root身份完成的东西的植物学方法是什么?

2 个答案:

答案 0 :(得分:2)

自动化在Python以及其他语言中设置开发环境最近引起了很多关注。因此,根据您的要求,有多种解决方案可供选择。

通常,这些解决方案需要权衡:给定解决方案提供的隔离越多,它的开销就越大。以下是我尝试过并发现有用的东西的非排他性列表。此列表按隔离的升序排列,因此开销:

1)Fabric

  

“它提供了一组执行本地或远程shell命令的基本操作   (通常或通过sudo)和上传/下载文件,以及辅助   提示正在运行的用户输入或中止执行等功能。“

2)cookiecutter

  

“从cookiecutters(项目模板)创建项目的命令行实用程序。   例如。 Python包项目,jQuery插件项目。“

3)docker

  

“一个开源项目,用于打包,运送和运行任何应用程序作为轻量级容器。”

4)Vagrant

  

“创建和配置轻量级,可重现且可移植的开发环境。”

我已经包括了Vagrant的完整性。它本质上是一个用于编程创建虚拟机的工具,因此位于列表的底部。正如您所提到的,如果您对使用自己的操作系统和API堆栈等的VM的开销不太感兴趣,那么您应该选择前三个选项中的一个 - 所有这些选项在某种程度上都是Pythonic的DRY等。

就个人而言,基于我可以从你的问题陈述中收集的有限观点,我会看cookiecutter

答案 1 :(得分:0)

Vagrant就是您所需要的。

一旦创建,developlemt环境很容易在开发人员之间分配。

我使用了很长时间的另一个建议 - 为你的应用程序创建二进制包rpm / deb。

两种方法都有利弊,而且它们可以结合使用。

在我看来,没有Pythonic方法来做这些事情。 Fabric可能很方便,但它有另一个应用领域。