よしたく blog

ほぼ週刊で記事を書いています

Djangoでrequirements.txtをうまく使い分ける方法

f:id:yoshitaku_jp:20180711100334p:plain

以前、Djangoのrequirements.txtを環境ごとに使い分けようとした結果、Herokuにてエラーが出てしまいました。これの良い解決方法です。

yoshitaku-jp.hatenablog.com

もぐもぐDjangoにて質問したところ、ベストな回答をいただけたのでメモ代わりに書いておきます。

構成

.
├── requirements.txt
└── requirements
    ├── base.txt
    ├── develop.txt
    └── production.txt

requirements.txt

requirements.txtはHeroku用として、production.txtを読み込む設定を記述します。これでHerokuに「プロジェクトルートにrequirements.txtがない」と怒られることもありません。

-r requirements/production.txt

base.txt

base.txtはすべての環境で必要なものを記述します。Dajngoとかはココに記述しておきましょう。ファイル名ですがcommon.txtbase.txtどっちがいいのかなと気になり質問したら、common.txtは複数に共通しているものbase.txtはなにかの土台となるものを書きましょうと言われました。勉強になりました。

#すべての環境で必要なものを書く

develop.txt

develop.txtは開発環境で必要なものを記述します。テストとかで使うようなものを書いておくといいんじゃないでしょうか

-r base.txt
#以下、開発環境に必要なもの

production.txt

production.txtは本番環境で必要なものを記述します。テストとかで使うものはいらないので、必要最低限持っていきたいですね。

-r base.txt
#以下本番環境に必要なもの

大変参考になりました。

qiita.com

stackoverflow.com