【问题标题】:Heroku - Declare it as envvar or define a default valueHeroku - 将其声明为 envvar 或定义默认值
【发布时间】:2018-08-19 09:28:14
【问题描述】:

我正在尝试在本地运行我的 Heroku 应用程序并按照 here 的说明进行操作。

当我尝试运行以下命令时:

python manage.py collectstatic

我遇到了这个错误:

Traceback (most recent call last):
File "manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "C:\Python36-32\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
utility.execute()
File "C:\Python36-32\lib\site-packages\django\core\management\__init__.py", line 317, in execute
settings.INSTALLED_APPS
File "C:\Python36-32\lib\site-packages\django\conf\__init__.py", line 56, in __getattr__
self._setup(name)
File "C:\Python36-32\lib\site-packages\django\conf\__init__.py", line 43, in _setup
self._wrapped = Settings(settings_module)
File "C:\Python36-32\lib\site-packages\django\conf\__init__.py", line 106, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\Python36-32\lib\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 "C:\Users\robina\Ubelt-Dorm\ph_dorms\settings.py", line 25, in <module>
SECRET_KEY = config('SECRET_KEY')
File "C:\Python36-32\lib\site-packages\decouple.py", line 197, in __call__
return self.config(*args, **kwargs)
File "C:\Python36-32\lib\site-packages\decouple.py", line 85, in __call__
return self.get(*args, **kwargs)
File "C:\Python36-32\lib\site-packages\decouple.py", line 70, 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.

SECRET_KEY 已在 Heroku 上声明为配置变量。

我已经联系 Heroku,但仍然没有回复,所以也许这里的人可以在他们之前找到解决此错误的方法。

我想在本地使用与 Web 相同的版本运行此应用,因此在 settings.py 上添加 SECRET_KEY 对我来说不是一条路线。

我的settings.py 是这样配置的:

from decouple import config
SECRET_KEY = config('SECRET_KEY')

【问题讨论】:

  • 你检查this了吗?

标签: django python-3.x heroku heroku-toolbelt decouple


【解决方案1】:

您可以像这样使用 Heroku 的命令行工具设置环境变量:

heroku config:set SECRET_KEY='Your secret key'

【讨论】:

    【解决方案2】:

    您可以通过将本地环境变量添加到.env 文件来设置本地环境变量,然后通过heroku local 启动您的开发服务器。这会将所有NAME=value 行从.env 转换为环境变量,然后可供您的应用使用。然后您可以将.env 添加到您的.gitignore,因为这仅在您的本地计算机上是必需的。详情请见https://devcenter.heroku.com/articles/heroku-local#set-up-your-local-environment-variables

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-04
      • 2020-05-16
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 2016-01-20
      • 2019-03-24
      • 1970-01-01
      相关资源
      最近更新 更多