首页 文章

运行heroku run命令会生成SECRET_KEY设置,不能为空错误

提问于
浏览
0

我正在尝试使用Heroku部署我的Django项目,但是当我运行 heroku run python manage.py syncdb 命令时,现在仍然遇到空的SECRET_KEY问题:

回溯(最近一次调用最后一次):文件“manage.py”,第10行,在execute_from_command_line(sys.argv)文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/ “管理/ init.py”,第338行,在execute_from_command_line utility.execute()文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/management/init.py”,第330行,在执行self.fetch_command(子命令).run_from_argv(self.argv)文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/management/init.py”,第190行,在fetch_command中klass = load_command_class(app_name,subcommand)文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/management/init.py”,第40行,在load_command_class module = import_module( '%s.management.commands . %s'%(app_name,name))文件“/app/.heroku/python/lib/python2.7/importlib/init.py”,第37行,在import_module导入(名称)文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/management/commands/syncdb.py”,第4行,来自django.contrib.auth impo rt get_user_model文件“/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/init.py”,第7行,来自django.middleware.csrf import rotate_token文件“/ app / .heroku / python / lib / python2.7 / site-packages / django / middleware / csrf.py“,第14行,来自django.utils.cache import patch_vary_headers文件”/app/.heroku/python/lib/python2 . 7 / site-packages / django / utils / cache.py“,第26行,来自django.core.cache导入缓存文件”/app/.heroku/python/lib/python2.7/site-packages/django/core /cache/init.py“,第34行,如果DEFAULT_CACHE_ALIAS不在settings.CACHES:文件”/app/.heroku/python/lib/python2.7/site-packages/django/conf/init.py“,行48,在getattr self._setup(name)文件“/app/.heroku/python/lib/python2.7/site-packages/django/conf/init.py”,第44行,在_setup self._wrapped = Settings( settings_module)文件“/app/.heroku/python/lib/python2.7/site-packages/django/conf/init.py”,第113行,在init中引发了ImproperlyConfigured(“SECRET_KEY设置不能为空 . ”) django.cor e.exceptions.ImproperlyConfigured:SECRET_KEY设置不能为空 .

但是,运行 python manage.py syncdb 完全没问题 . 在我的 settings.py 文件中,我甚至将SECRET_EKY明确写为:

import os

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    SECRET_KEY = '*$_99!t5u&#w&9boeq()=obq@rjdsfasdfa#8hp_5s%h-mh(hk'`

我仍然遇到同样的问题 . 我想知道环境变量DJANGO_SETTINGS_MODULE是否丢失,但运行 heroku config 给了我(我用xxx替换了信息):

DATABASE_URL:xxx DJANGO_SETTINGS_MODULE:xxx SECRET_KEY:xxx

似乎相关的环境变量确实存在 . 我真的希望你能给我一些建议 . 非常感谢你提前 .

1 回答

  • 0

    可能是一个愚蠢的问题,但你在运行 heroku run python manage.py syncdb

    如果是这样,我非常有信心,您的设置模块未加载 .

    这可能有以下原因之一:

    • 您的设置模块不是Django所期望的
      (但你说manage.py可以找到它)

    • 您有另一个配置,它会掩盖您的配置设置
      (例如,用于开发设置的local.py设置模块)

    你对 manage.pywsgi.py 进行了任何修改吗?

    如果我能想到更多,我会编辑这个答案 .

相关问题