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