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

Joh*_*ann 5 python pip heroku

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

yel*_*ott 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
Run Code Online (Sandbox Code Playgroud)

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

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

# requirements.txt    
-r requirements/heroku.txt
Run Code Online (Sandbox Code Playgroud)

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