如何在Heroku中部署pip的requirements.txt?

时间:2013-06-01 20:11:47

标签: python heroku pip

我正在向Heroku部署一个Python Django应用程序,我只想在部署到某些环境(如Heroku)时自定义requirements.txt文件(通过添加git支持的密码依赖项)。我喜欢在环境变量或其他东西中设置它,但我不相信pip有这样的功能。我的想法是使用Heroku提供的一个钩子来放置一个脚本,该脚本会在安装依赖项之前添加到我的requirements.txt中。这可能吗?

2 个答案:

答案 0 :(得分:14)

您可以在其他需求文件中包含需求文件。

# requirements.txt    
-r requirements/base.txt

# requirements/base.txt
django==1.6

# requirements/heroku.txt
-r requirements/base.txt
djpostgresurlthing==1.0.0

# requirements/dev.txt
-r requirements/base.txt
django-debug-toolbar

我通常在项目的根目录中保留一个requirements.txt文件,其中只包含其他需求文件(通常是prod或base),并创建一个包含特定环境内容的requirements/文件夹。所以在本地我pip install -r requirements/dev.txt和服务器pip install -r requirements/prod.txt

对于heroku的情况,你需要根的requirements.txt用于heroku。所以你可以使用该文件来包含你的heroku需求文件。

# requirements.txt    
-r requirements/heroku.txt

可能有一种方法可以告诉heroku使用不同的文件。但这将是一个简单的解决方法。

答案 1 :(得分:0)

您可以执行标准HTTPS身份验证:

# requirements.txt
git+https://user:password@example.com/dir/repo.git

但更简洁的方法是托管您自己的一系列要求,请参阅:https://devcenter.heroku.com/articles/python-pip#private-indexes

为了管理不同的环境要求,您可以简单地使用requirements.txt进行生产,使用requirements-dev.txt进行本地开发,或者使用@ yellottyellott建议包含其他文件的依赖项。