в __getitem__ поднять KeyError (ключ) из None - PullRequest
0 голосов
/ 07 октября 2019

В настоящее время я следую учебному пособию, в котором пароль базы данных скрывается / активируется как переменная в файле активации среды. В Django local_settings.py пароль должен быть получен следующим образом:

"PASSWORD": os.environ['DATABASE_PW'],

Однако, это дает мне ошибку:

  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\User\Desktop\blog\project\project\settings.py"
, line 325, in <module>
    exec(open(f, "rb").read())
  File "<string>", line 21, in <module>
  File "C:\Users\User\Envs\blog\lib\os.py", line 678, in __getitem__
    raise KeyError(key) from None
KeyError: 'DATABASE_PW'

В файле активации средыпароль сохраняется как:

export DATABASE_PW = 'dbpass'

Во время установки пароля сервер не работал, ошибка возникает при попытке запустить python manage.py runserver.

Я также деактивировал иповторно активировать среду, прежде чем пытаться запустить сервер.

Чего не хватает, чтобы заставить его работать?

1 Ответ

0 голосов
/ 07 октября 2019

Так как я работаю в Windows, правильный способ активировать скрытые переменные в файле активации среды - это поместить их в файл activ.bat.

Я установил мои так в файле .batвнизу:

set DATABASE_PW=dbpass

И это работает. Если вы работаете на Linux или Mac, вам нужно использовать правильный файл активации, если вы планируете сделать это таким же образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...