有条件的PIP安装Django应用程序在Heroku要求(Conditional pip insta

2019-06-27 06:20发布

让我先说,我不认为有办法做到这一点开始......不过,也有很多聪明的人在那里,所以我想我会问! :)

我发现兰德尔Degges好文章/职位上建立在Heroku上一个Django应用程序 ( 互联网档案链接 )。 我真的很喜欢他有什么要说破坏你的需求分成不同的文件(common.txt,dev.txt,prod.txt等)。

这在Heroku生产的伟大工程,但我也保持在Heroku一个开发/ QA网站,我有我并不真的需要督促,我不使用的开发/ QA了几包。 最好的例子就是Django的调试工具栏。 目前,我有这个在我的生产requirements.txt,我决定动态,如果我需要它在运行时通过查看DEBUG设置添加到我安装的应用程序等settings.py中。

工作正常......但是,这将是巨大的,如果我连理会在督促安装。 我猜我有点想要的是点子,能够采取需求文件,允许条件语句包括(为什么不能只是采取一个Python文件?)或Heroku的支持配置设置,告诉它这要求文件使用。 有没有人找到实现这个的一种方式? 抑或只是一厢情愿?

Answer 1:

你有没有为这个 ?

如果你的Python应用程序包含一个setup.py文件,但不包括requirements.txt文件,蟒蛇的setup.py开发将用来安装你的包和解决您的依赖。 这个工作最好与分发或setuptools的。 直接使用的distutils项目将被安装,但没有联系。 该模块将不会更新,直到有一个版本的肿块。 如果你已经有了一个需求文件,但想利用此功能,您可以添加以下到您的要求的文件:

-e .

然后按照中的建议有条件的python2.6的安装导入库



Answer 2:

我曾在扩建相似的需求,并实现它。 现在,我从扩建迁移到点子,我想出了这个脚本使用基于某些条件的一些不同的要求的文件,基于OS /拱或你喜欢的一些环境变量或任何可以。 原油,但有效的对我。

见https://gist.github.com/pombredanne/72130ee6f202e89c13bb



Answer 3:

是的,这是一厢情愿的想法。 画中画要求的文件是非常简单的。 从字面上看,所有的点子确实只是在前面加上pip install到该文件中的每一行,所以条件语句和如一个不走。 具有单独要求的文件为每个环境是一个不错的主意,但问题就变成了,为什么不只是为你的开发/ QA部位的版本呢?

这就是说,我觉得这一切都有点学术反正。 只要有安装不伤害任何一个包。 例如,它并不重要,如果你有,即使在生产安装Django的调试工具包,你的生产实例实际上不会使用它,所以除了驱动器空间的几千字节它占用了,这不是一个问题。

就个人而言,我永远只是一个有要求的文件,并在那里,我只放了要求 ,即这些都是该网站从字面上不能没有运行包。 事情是这样的Django调试工具栏,IPython中,等等。我只是手动安装,当我需要他们。



文章来源: Conditional pip install requirements on Heroku for Django app