Как заставить python -депочку работать на живом сервере? - PullRequest
0 голосов
/ 18 марта 2020

Я не могу заставить python -депочку работать на живом сервере. У меня есть проект Django, в котором python -decouple используется для разделения моих важных переменных, таких как секретный ключ, отладка, переменные базы данных и т. Д. В файле .env. Когда проект запускается локально, python -decouple работает хорошо, и у меня нет проблем.

Убедившись, что он работает хорошо локально, я затем добавил файл .env в мой файл .gitignore и отправил код в мой репозиторий GitHub, а затем вытащил код на AWS живой сервер.

Однако при попытке выполнить миграцию при настройке проекта на сервере AWS EC2 Ubuntu я получаю сообщение об ошибке ниже. Кажется, что переменные в файле .env не применяются на сервере AWS Ubuntu, что имело бы смысл из-за файла .gitignore. Но я думал, что суть python -децепа состоит в том, чтобы не иметь важных переменных на живом сервере. Кто-нибудь знает, почему происходит эта ошибка? и как я могу это исправить? или не совсем понимаете случаи использования python -децепи?

$ python manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/home/theo/aggtrends/aggenv/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/home/theo/aggtrends/aggenv/lib/python3.6/site-packages/django/core/management/__init__.py", line 345, in execute
    settings.INSTALLED_APPS
  File "/home/theo/aggtrends/aggenv/lib/python3.6/site-packages/django/conf/__init__.py", line 76, in __getattr__     
    self._setup(name)
  File "/home/theo/aggtrends/aggenv/lib/python3.6/site-packages/django/conf/__init__.py", line 63, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/theo/aggtrends/aggenv/lib/python3.6/site-packages/django/conf/__init__.py", line 142, in __init__       
    mod = importlib.import_module(self.SETTINGS_MODULE)    
  File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, 
in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/theo/aggtrends/aggregatetrends/settings.py", 
line 26, in <module>
    SECRET_KEY = config('SECRET_KEY')
  File "/home/theo/aggtrends/aggenv/lib/python3.6/site-packages/decouple.py", line 199, in __call__
    return self.config(*args, **kwargs)
  File "/home/theo/aggtrends/aggenv/lib/python3.6/site-packages/decouple.py", line 83, in __call__
    return self.get(*args, **kwargs)
  File "/home/theo/aggtrends/aggenv/lib/python3.6/site-packages/decouple.py", line 68, in get
    raise UndefinedValueError('{} not found. Declare it as 
envvar or define a default value.'.format(option))
decouple.UndefinedValueError: SECRET_KEY not found. Declare it as envvar or define a default value.

1 Ответ

0 голосов
/ 18 марта 2020

Да, вы не должны хранить уязвимые данные, такие как .env файлы, в хранилищах publi c.

Но вы должны создать их заново на стороне сервера.

  1. Подключиться к серверу
  2. Go к папке проекта
  3. Создать .env файл и выполнить его со всеми необходимыми переменными, которые вы используете.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...