1

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

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

我们使用以下步骤:

  1. 创建虚拟环境
  2. pip install -e git... #egg=coreapp_c1
  3. pip install -r src/coreapp-c1/requirements.txt

不幸的是,还有一些其他步骤需要完成:

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

做需要以root身份完成的事情的最植物性方法是什么?

4

2 回答 2

2

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

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

1)面料

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

2)千篇一律

“一个命令行实用程序,可以从 cookiecutters(项目模板)创建项目。例如 Python 包项目、jQuery 插件项目。”

3)码头工人

“一个将任何应用程序作为轻量级容器打包、发布和运行的开源项目。”

4)流浪者

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

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

就个人而言,基于我可以从您的问题陈述中收集到的有限视角,我会查看cookiecutter

于 2013-10-14T10:05:07.727 回答
0

流浪是你需要的。

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

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

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

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

于 2013-10-14T08:33:59.213 回答