KeyError : APP_SETTINGS

4

我遇到了一个 KeyError 错误,这是 apache2/error.log 中的错误信息:

tail /var/log/apache2/error.log
[Tue Oct 04 18:07:13.305780 2016] [wsgi:error] [pid 15459:tid 140052675933952] [client 174.58.31.189:56852] mod_wsgi (pid=15459): Target WSGI script '/var/www/FlaskApp/flaskapp.wsgi' cannot be loaded as Python module., referer: http://localhost/login/
[Tue Oct 04 18:07:13.305918 2016] [wsgi:error] [pid 15459:tid 140052675933952] [client 174.58.31.189:56852] mod_wsgi (pid=15459): Exception occurred processing WSGI script '/var/www/FlaskApp/flaskapp.wsgi'., referer: http://localhost/login/
[Tue Oct 04 18:07:13.306787 2016] [wsgi:error] [pid 15459:tid 140052675933952] [client 174.58.31.189:56852] Traceback (most recent call last):, referer: http://45.55.236.208/login/
[Tue Oct 04 18:07:13.306833 2016] [wsgi:error] [pid 15459:tid 140052675933952] [client 174.58.31.189:56852]   File "/var/www/FlaskApp/flaskapp.wsgi", line 7, in <module>, referer: http://localhost/login/
[Tue Oct 04 18:07:13.306842 2016] [wsgi:error] [pid 15459:tid 140052675933952] [client 174.58.31.189:56852]     from FlaskApp import app as application, referer: http://localhost/login/
[Tue Oct 04 18:07:13.306855 2016] [wsgi:error] [pid 15459:tid 140052675933952] [client 174.58.31.189:56852]   File "/var/www/FlaskApp/FlaskApp/__init__.py", line 14, in <module>, referer: http://localhost/login/
[Tue Oct 04 18:07:13.306861 2016] [wsgi:error] [pid 15459:tid 140052675933952] [client 174.58.31.189:56852]     app.config.from_object(os.environ['APP_SETTINGS']), referer: http://localhost/login/
[Tue Oct 04 18:07:13.306872 2016] [wsgi:error] [pid 15459:tid 140052675933952] [client 174.58.31.189:56852]   File "/usr/lib/python3.5/os.py", line 725, in __getitem__, referer: http://localhost/login/
[Tue Oct 04 18:07:13.306892 2016] [wsgi:error] [pid 15459:tid 140052675933952] [client 174.58.31.189:56852]     raise KeyError(key) from None, referer: http://localhost/login/
[Tue Oct 04 18:07:13.306925 2016] [wsgi:error] [pid 15459:tid 140052675933952] [client 174.58.31.189:56852] KeyError: 'APP_SETTINGS', referer: http://localhost/login/

我的主应用程序中有:

import os
app.config.from_object(os.environ['APP_SETTINGS'])

这是我的 config.py:

# default config
import os

class BaseConfig(object):
    DEBUG = False
    SECRET_KEY = 'jjjjjjj'
    SQLALCHEMY_DATABASE_URI = os.environ['DATABASE_URL']


class DevelopmentConfig(BaseConfig):
    DEBUG = True


class ProductionConfig(BaseConfig):
    DEBUG = False

我的工作内容:

export APP_SETTINGS="config.DevelopmentConfig"
export DATABASE_URL="postgresql://user:mypassword@localhost/database"

它没有告诉我哪个关键字缺失或者有什么错误,我正在从DigitalOcean Ubuntu运行这个应用程序,如果这有所帮助。


它没有告诉我缺少哪个键。但实际上是这样的:KeyError: 'APP_SETTINGS' - John Gordon
我应该做些什么来解决它? - quechon
2
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - John Gordon
有没有任何想法如何修复? - quechon
我之前想的那个文件似乎是错的,你能告诉我我们在谈论哪个Apache文件吗?谢谢。 - quechon
显示剩余5条评论
1个回答

1

在启动Apache时,没有一种方便的方法来设置环境变量。通常情况下,您需要显式地从WSGI脚本文件中设置它们,或者通过在某个单独的文件中拥有它们并让WSGI脚本文件读取该文件并根据其中设置的内容为您设置它们。使用单独的文件可以避免将信息存储在代码库中。该单独文件可以位于/etc/或其他位置,并且仅存在于您部署到的系统上。


这是一个我需要创建的文件还是需要编辑的文件,换句话说,如何操作?请指教。 - quechon
先确定如何在WSGI脚本文件中设置它,以确保其正常工作。因此,请查找如何在Python应用程序进程中设置环境变量。 - Graham Dumpleton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接