问题 对于django,Buildout vs virtualenv + pip?


优点和缺点?

我个人正在为我的django项目使用buildout,但考虑到简单地切换到virtualenv + pip。


5870
2017-07-28 21:25


起源



答案:


核心,buildout和pip + virtualenv也是如此。他们都使用python包,安装它们,将它们与python环境的其余部分隔离开来,处理依赖关系(通过setup.py)等等。

Buildout做得更多。当然,这意味着比pip更多的配置。你必须弄清楚额外的配置是否值得你从它那里得到的回报。

你可以通过一些附加组件(“配方”)从buildout中获得一些额外的东西:

  • 'djangorecipe'插件为你设置django。例如,不需要指向settings.py文件的环境变量。便利。

  • 自动设置cronjob。

  • 从模板生成配置文件(如您网站的apache)。使用buildout配置中的变量,这样可以防止重复。

基本上,你可以得到一些 显式配置 用buildout完成。更少的手动步骤。

另一方面,您可以使用其他工具来实现您可能需要的额外自动化级别。所以virtualenv + pip + something_else也是可能的。


11
2017-07-29 08:13



你能告诉我更多关于自动设置cronjob的信息。 - Roman Dolgiy
当然。看着 pypi.python.org/pypi/z3c.recipe.usercrontab 举个简单的例子。 - Reinout van Rees


答案:


核心,buildout和pip + virtualenv也是如此。他们都使用python包,安装它们,将它们与python环境的其余部分隔离开来,处理依赖关系(通过setup.py)等等。

Buildout做得更多。当然,这意味着比pip更多的配置。你必须弄清楚额外的配置是否值得你从它那里得到的回报。

你可以通过一些附加组件(“配方”)从buildout中获得一些额外的东西:

  • 'djangorecipe'插件为你设置django。例如,不需要指向settings.py文件的环境变量。便利。

  • 自动设置cronjob。

  • 从模板生成配置文件(如您网站的apache)。使用buildout配置中的变量,这样可以防止重复。

基本上,你可以得到一些 显式配置 用buildout完成。更少的手动步骤。

另一方面,您可以使用其他工具来实现您可能需要的额外自动化级别。所以virtualenv + pip + something_else也是可能的。


11
2017-07-29 08:13



你能告诉我更多关于自动设置cronjob的信息。 - Roman Dolgiy
当然。看着 pypi.python.org/pypi/z3c.recipe.usercrontab 举个简单的例子。 - Reinout van Rees