6

我正在将 Python Django 应用程序部署到 Heroku,并且我想仅在部署到 Heroku 等特定环境时自定义 requirements.txt 文件(通过添加带有密码的 git 支持的依赖项)。我很想在环境变量或其他东西中设置它,但我不相信 pip 有任何类似的功能。我的想法是使用 Heroku 提供的挂钩来放置一个脚本,该脚本将在安装依赖项之前添加到我的 requirements.txt 中。那可能吗?

4

2 回答 2

17

您可以在另一个需求文件中包含一个需求文件。

# 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 的情况,您需要root requirements.txt 用于heroku。因此,您可以使用该文件来包含您的 heroku 需求文件。

# requirements.txt    
-r requirements/heroku.txt

可能有一些方法可以告诉 heroku 使用不同的文件。但这将是绕过它的简单方法。

于 2013-06-01T21:30:15.617 回答
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 的建议之一,包括来自其他文件的依赖项。

于 2013-06-01T21:45:02.020 回答