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