尝试启动Saleor时,出现以下错误,提示找不到SECRET_KEY
堆栈:
Debian
Python 3.7.4
销售员(截至7-25-19)
:/$ sudo python manage.py migrate
回溯(最近通话最近): 在第10行的文件“ manage.py”中 execute_from_command_line(sys.argv)
... ...
文件“ /usr/local/lib/python3.7/site-packages/django/conf/init.py”,第178行, init 提高ImproperlyConfigured(“ SECRET_KEY设置不能为空。”) django.core.exceptions.ImproperlyConfigured:SECRET_KEY设置不能为空。
我做完
:/$ env
然后看
SECRET_KEY=the-secret-key
我还输入了python提示符并尝试
>>> import os
>>> print(os.environ.get("SECRET_KEY"))
the-secret-key
因此该值似乎设置为可访问,但系统似乎找不到它。
答案 0 :(得分:1)
要弄清前面的答案,您需要记住环境变量的作用域是用户。因此,当您使用sudo
运行流程时,您的用户定义的环境变量将对超级用户不可用(除非您通过-E
标志)。比较运行env
和sudo env
的结果,您将看到不同的变量和值。
这个问题的另一个常见解决方案是在执行脚本时内联声明变量,例如sudo SECRET_KEY=xyz python manage.py migrate
答案 1 :(得分:0)
尝试sudo -E python manage.py migrate
-E标志使用sudo保留环境变量。