如何让python解耦在实时服务器上工作?

如何让python解耦在实时服务器上工作?,python,django,python-decouple,Python,Django,Python Decouple,我似乎无法让python解耦在实时服务器上工作。我有一个Django项目,其中python decouple用于在.env文件中分离重要变量,如密钥、调试、数据库变量等。当项目在本地运行时,python解耦工作得很好,我没有任何问题 在确认它在本地运行良好后,我将.env文件添加到.gitignore文件中,将代码推送到我的GitHub存储库,然后将代码推送到AWS live服务器 然而,当在AWS EC2 Ubuntu服务器上配置项目时尝试进行迁移时,我得到以下错误。似乎.env文件中的变量没

我似乎无法让python解耦在实时服务器上工作。我有一个Django项目,其中python decouple用于在.env文件中分离重要变量,如密钥、调试、数据库变量等。当项目在本地运行时,python解耦工作得很好,我没有任何问题

在确认它在本地运行良好后,我将.env文件添加到.gitignore文件中,将代码推送到我的GitHub存储库,然后将代码推送到AWS live服务器

然而,当在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.
$python manage.py makemigrations
回溯(最近一次呼叫最后一次):
文件“manage.py”,第15行,在
从命令行(sys.argv)执行命令
文件“/home/theo/aggtrends/aggenv/lib/python3.6/site packages/django/core/management/_init__uuuuu.py”,第401行,从命令行执行
utility.execute()
文件“/home/theo/aggtrends/aggenv/lib/python3.6/site packages/django/core/management/__init__.py”,执行中第345行
settings.INSTALLED\u应用程序
文件“/home/theo/aggtrends/aggenv/lib/python3.6/site packages/django/conf/__init___;.py”,第76行,在
自我设置(名称)
文件“/home/theo/aggtrends/aggenv/lib/python3.6/site packages/django/conf/_init___u;.py”,第63行,在安装程序中
自包装=设置(设置模块)
文件“/home/theo/aggtrends/aggenv/lib/python3.6/site packages/django/conf/_init__.py”,第142行,在
mod=importlib.import\u模块(自我设置\u模块)
文件“/usr/lib/python3.6/importlib/_init_uuu.py”,第126行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第994行,在_gcd_导入中
文件“”,第971行,在_find_和_load中
文件“”,第955行,在“查找”和“加载”中解锁
文件“”,第665行,在“加载”中
文件“”,第678行,
在exec_模块中
文件“”,第219行,在“调用”中,删除了“帧”
文件“/home/theo/aggtrends/aggregateTrands/settings.py”,
第26行,在
SECRET\u KEY=config('SECRET\u KEY')
文件“/home/theo/aggtrends/aggenv/lib/python3.6/site packages/decouple.py”,第199行,在调用中__
返回self.config(*args,**kwargs)
文件“/home/theo/aggtrends/aggenv/lib/python3.6/site packages/decouple.py”,第83行,在调用中__
返回self.get(*args,**kwargs)
文件“/home/theo/aggtrends/aggenv/lib/python3.6/site packages/decouple.py”,get中第68行
未找到引发UndefinedValueError({})。将其声明为
envvar或定义默认值。“.format(选项))
decouple.UndefinedValue错误:找不到密钥。将其声明为envvar或定义默认值。

是的,您不应该在公共存储库中存储易受攻击的数据,如
.env
文件

但是,您应该在服务器端再次创建它

  • 连接到服务器
  • 转到项目文件夹
  • 创建
    .env
    文件,并使用您使用的所有必要变量来实现它