2016-10-31 7 views
0

私はジャンゴ(1.10)を実行しようとしているが、エラーを取得しています:Djangoに環境変数が見えませんか?

(.venv)$ ./manage.py runserver 0.0.0.0:8000 
Traceback (most recent call last): 
    File "./manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    ... 
    File "/home/myapp/myapp/myapp/myapp/settings/local.py", line 5, in <module> 
    from .base import * 
    File "/home/myapp/myapp/myapp/myapp/settings/base.py", line 64, in <module> 
    'NAME': utils.get_env_setting('RETR_DB_NAME'), 
    File "/home/myapp/myapp/myapp/common/utils.py", line 13, in get_env_setting 
    raise ImproperlyConfigured(error_msg) 
django.core.exceptions.ImproperlyConfigured: Set the RETR_DB_NAME env variable 

しかし、環境変数が設定されている:問題の

(.venv) $ echo $RETR_DB_NAME 
myname 

コードは次のようになります。

def get_env_setting(setting): 
    """ Get the environment setting or return exception """ 
    try: 
    return environ[setting] 
    except KeyError: 
    error_msg = "Set the %s env variable" % setting 
    raise ImproperlyConfigured(error_msg) 
... 
'NAME': utils.get_env_setting('RETR_DB_NAME'), 

どのように私は環境変数を見ることができますが、Djangoはできません?

+0

'' environ [setting] 'ではなく' os.environ [setting] 'を試しましたか? – Ben

+0

あなたのシェルで '' export RETR_DB_NAME''を実行してみてください。 –

答えて

1

export RETR_DB_NAME='db_name'を使用して設定されていることを確認します。それが持つ問題だかどうかをチェックすることができます:

あなたが exportに忘れてしまった、と exportはそれをエクスポートするために使用することができた場合、出力は何もします
export -p | fgrep RETR_DB_NAME 

(それがすでにエクスポートされたかどうか、それはexportにエラーはありません2回):

export RETR_DB_NAME 
0

個人的には、デフォルト値を返すことを可能にするos.getenvを使用して変数を取得することをお勧めします。

はとにかくオッズは、あなたがexportにそれを忘れている環境変数が代わりにRETR_DB_NAME='db_name'

関連する問題