eve app deployment errors can anyone help me to fix it

匿名 (未验证) 提交于 2019-12-03 01:45:01

问题:

[Sat Apr 09 18:27:29.953008 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] mod_wsgi (pid=3230): Target WSGI script '/var/www/FlaskApps/FlaskApps.wsgi' cannot be loaded as Python module.

[Sat Apr 09 18:27:29.953045 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] mod_wsgi (pid=3230): Exception occurred processing WSGI script '/var/www/FlaskApps/FlaskApps.wsgi'.

[Sat Apr 09 18:27:29.953065 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] Traceback (most recent call last):

[Sat Apr 09 18:27:29.953079 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] File "/var/www/FlaskApps/FlaskApps.wsgi", line 8, in

[Sat Apr 09 18:27:29.953126 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] from run import app as application

[Sat Apr 09 18:27:29.953136 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] File "/var/www/FlaskApps/PlagiarismDefenderApp/run.py", line 28, in

[Sat Apr 09 18:27:29.953165 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] app = Eve()

[Sat Apr 09 18:27:29.953173 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] File "/usr/local/lib/python2.7/dist-packages/eve/flaskapp.py", line 139, in init

[Sat Apr 09 18:27:29.953371 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] self.validate_domain_struct()

[Sat Apr 09 18:27:29.953382 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] File "/usr/local/lib/python2.7/dist-packages/eve/flaskapp.py", line 252, in validate_domain_struct

[Sat Apr 09 18:27:29.953395 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] raise ConfigException('DOMAIN dictionary missing or wrong.')

[Sat Apr 09 18:27:29.953408 2016] [:error] [pid 3230:tid 140635784853248] [client 103.14.196.22:53950] ConfigException: DOMAIN dictionary missing or wrong.

home.py file

# -*- coding: utf-8 -*-  import os from eve import Eve  if 'PORT' in os.environ:     port = int(os.environ.get('PORT'))     host = '0.0.0.0' else:     port = 5000     host = '127.0.0.1'  app = Eve()   if __name__ == '__main__':     app.run(host=host, port=port) 

settins.py file

import os  MONGO_HOST = os.environ.get('MONGO_HOST', 'localhost') MONGO_PORT = os.environ.get('MONGO_PORT', 27017) MONGO_USERNAME = os.environ.get('MONGO_USERNAME', 'user') MONGO_PASSWORD = os.environ.get('MONGO_PASSWORD', 'user') MONGO_DBNAME = os.environ.get('MONGO_DBNAME', 'evedemo')  RESOURCE_METHODS = ['GET', 'POST', 'DELETE']  ITEM_METHODS = ['GET', 'PATCH', 'DELETE']  CACHE_CONTROL = 'max-age=20' CACHE_EXPIRES = 20  people = {     # 'title' tag used in item links.     'item_title': 'person',       'additional_lookup': {         'url': 'regex("[\w]+")',         'field': 'lastname'     },      'schema': {         'firstname': {             'type': 'string',             'minlength': 1,             'maxlength': 10,         },         'lastname': {             'type': 'string',             'minlength': 1,             'maxlength': 15,             'required': True,         },         'role': {             'type': 'list',             'allowed': ["author", "contributor", "copy"],         },         # An embedded 'strongly-typed' dictionary.         'location': {             'type': 'dict',             'schema': {                 'address': {'type': 'string'},                 'city': {'type': 'string'}             },         },         'born': {             'type': 'datetime',         },     } }  works = {     'cache_control': 'max-age=10,must-revalidate',     'cache_expires': 10,      'schema': {         'title': {             'type': 'string',             'required': True,         },         'description': {             'type': 'string',         },         'owner': {             'type': 'objectid',             'required': True,             'data_relation': {                 'resource': 'people',                 'embeddable': True             },         },     } }  DOMAIN = {     'people': people,     'works': works, } 

/var/www/FlaskApps/FlaskApps.wsgi

#! /usr/bin/python import sys import logging logging.basicConfig(stream=sys.stderr) sys.path.insert(0,"/var/www/FlaskApps/PlagiarismDefenderApp/")  # home points to the home.py file from home import app as application application.secret_key = "somesecretsessionkey" 

回答1:

Check the settings path that the Eve app is using. Check if it matches your settings.py. This error can be raised if you point the app to a wrong settings.py path.

Also, I guess it's a typo but you wrote settins.py. If that is correct, there's your problem. You need to have a settings.py on the same folder as the application, or you need to pass the settings path to the app.

See the Eve docs here for a detailed explanation of configuration with files.



回答2:

The error ConfigException: DOMAIN dictionary missing or wrong. is very misleading. When I run into such errors, I debug the validate_domain_struct in flaskapp.py, by stepping thru it line by line. This has always helped me find the root cause.

Which version of eve are you using ? https://github.com/nicolaiarocci/eve/issues/823 says it is fixed in eve 0.6+



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!