我似乎无法让 python-decouple 在实时服务器上工作。我有一个 Django 项目,其中 python-decouple 用于在 .env 文件中分隔我的重要变量,例如密钥、调试、数据库变量等。当项目在本地运行时,python-decouple 运行良好,我没有问题。
在确认它在本地运行良好后,我将 .env 文件添加到我的 .gitignore 文件中,将代码推送到我的 GitHub 存储库,然后将代码拉取到 AWS 实时服务器。
但是,当在 AWS EC2 Ubuntu 服务器上配置项目时尝试进行迁移时,我收到以下错误。似乎 .env 文件中的变量并没有被应用到 AWS Ubuntu 服务器上,这对 .gitignore 文件来说是有意义的。但我认为 python-decouple 的全部意义在于在实时服务器上没有重要的变量。有谁知道为什么会发生这个错误?以及我该如何解决?还是不完全理解 python-decouple 的用例?
$ 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.