前提・実現したいこと
djangoアプリで、シークレットキーを環境変数から読み込みたいです。
settings.pyに書かれている
SECRET_KEY = '*********************'という箇所を、
SECRET_KEY = os.environ['SECRET_KEY']のような形にしたいです。
発生している問題・エラーメッセージ
以下のページを参照して、settings.pyを設定しました。
Djangoで環境変数?ならdjango-environを使おうか。
エラーメッセージは以下の通りです。
raise ImproperlyConfigured(error_msg) django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable
該当のソースコード
構造は以下です(不要そうなところは省略してあります)。
myproject
├─myapp
│ ├─urls.py
│ ├─models.py
│ └─views.py
├─myproject
│ └─__init__.py
│ └─settings.py
│ └─wsgi.py
│ └─urls.py
└─.env
└─manage.py
settings.py
python
1import environ 2 3BASE_DIR = environ.Path(__file__) - 3 4 5env = environ.Env() 6 7READ_ENV_FILE = env.bool('DJANGO_READ_ENV_FILE', default=False) 8if READ_ENV_FILE: 9 env_file = str(BASE_DIR.path('.env')) 10 env.read_env(env_file) 11 12SECRET_KEY = env('SECRET_KEY') 13
.env
SECRET_KEY = '**********************'
.envに記述せずに、settings.pyにSECRET_KEY = '*********************'のように記述している時は、エラーはありません。
試したこと
1.django-environをインストール
2..envファイルを上記の通り作成
3.settings.pyを上記の通り編集
4.python manage.py runserverを実行
.envの置き場所を変えてみたり、”BASE_DIR = environ.Path(file) - 3”の数字を変えてみたりしましたが、
同様のエラーがでます。
以上となります。
原因がお分かりになる方、宜しくお願い致します。