即使Python可以找到,销售者也无法找到SECRET_KEY

时间:2019-07-27 05:05:28

标签: saleor

尝试启动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

因此该值似乎设置为可访问,但系统似乎找不到它。

2 个答案:

答案 0 :(得分:1)

要弄清前面的答案,您需要记住环境变量的作用域是用户。因此,当您使用sudo运行流程时,您的用户定义的环境变量将对超级用户不可用(除非您通过-E标志)。比较运行envsudo env的结果,您将看到不同的变量和值。

这个问题的另一个常见解决方案是在执行脚本时内联声明变量,例如sudo SECRET_KEY=xyz python manage.py migrate

答案 1 :(得分:0)

尝试sudo -E python manage.py migrate

-E标志使用sudo保留环境变量。