Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Dreamhost上的乘客运行烧瓶站点返回500错误_Json_Python 3.x_Flask_Passenger_Dreamhost - Fatal编程技术网

Json Dreamhost上的乘客运行烧瓶站点返回500错误

Json Dreamhost上的乘客运行烧瓶站点返回500错误,json,python-3.x,flask,passenger,dreamhost,Json,Python 3.x,Flask,Passenger,Dreamhost,我很难让乘客和Flask一起工作。我在运行Python 3.5.2的virutalenv中运行DreamHost上的Flask站点。应用程序应该从URL中的查询字符串接收输入,解析服务器端JSON文件,在JSON文件中搜索所述查询字符串,重新格式化JSON,然后将其发送回客户端。相反,它给了我500个错误代码。这是我的密码。请原谅所有的日志函数调用。我已经尽我所能四处搜索了 import logging logging.basicConfig(filename='wsgi_flask.log',

我很难让乘客和Flask一起工作。我在运行Python 3.5.2的virutalenv中运行DreamHost上的Flask站点。应用程序应该从URL中的查询字符串接收输入,解析服务器端JSON文件,在JSON文件中搜索所述查询字符串,重新格式化JSON,然后将其发送回客户端。相反,它给了我500个错误代码。这是我的密码。请原谅所有的日志函数调用。我已经尽我所能四处搜索了

import logging
logging.basicConfig(filename='wsgi_flask.log', level=logging.DEBUG)
try:
    import sys, os

    logging.info('line 7')

    VENV = os.path.join(os.environ['HOME'], '.pyenv', 'versions', '3.5.2', 'envs', 'flask')
    INTERP = os.path.join(VENV, 'bin', 'python')

    logging.info('line 12')

    if sys.executable != INTERP:
        os.execl(INTERP, INTERP, *sys.argv)

    logging.info('line 17')

    sys.path.append(VENV)
    sys.path.append(os.path.join(VENV, 'lib', 'python3.5', 'site-packages'))
    sys.path.append(os.path.join(os.environ['HOME'], 'api.example.com'))

    logging.info('line 23')

    # INTERP = os.path.join(os.environ['HOME'], '.pyenv', 'versions', 'flask', 'bin', 'python')
    # if sys.executable != INTERP:
    #     os.execl(INTERP, INTERP, *sys.argv)
    # sys.path.append(os.getcwd())
    from paste.exceptions.errormiddleware import ErrorMiddleware

    logging.info('line 31')

    # import argparse
    import json

    logging.info('line 36')

    from flask import (Flask, abort, g, jsonify, make_response, redirect,
                   render_template, render_template_string, request, url_for, Response)

    logging.info('line 41')

    # parser = argparse.ArgumentParser()
    # parser.add_argument('-d', '--debug', action='store_true')
    # apargs = parser.parse_args()

    # def debugLog(*args):
    #     if apargs.debug:
    #         for i in args:
    #             print(i)

    application = Flask(__name__)

    logging.info('line 54')

    @application.route('/')
    def index():
        logging.info('line 58')
        # if apargs.debug:
        #     data = json.load(open('/path/to/test.json', 'rb'))
        # else:
        logging.info('line 62')
        try:
            logging.info('line 64')
            data = json.load(open('/path/to/test.json', 'rb'))
            logging.info('line 66')
        except:
            logging.info('line 68')
            logging.warning('Is it the JSON?')
            raise('Error whilst loading JSON')
        logging.info('line 71')
        getForm = request.args.get('search') or ''
        logging.info('line 73')

        # debugLog(data, getForm)

        jsonData = ""
        logging.info('line 78')
        for d in data:
            logging.info('line 80 (for loop)')
            # debugLog(d)
            if getForm in d['text']:
                logging.info('line 83 (for loop)')
                jsonData = jsonData + str(d) + ','
                logging.info('line 85 (for loop)')
            logging.info('line 86 (for loop)')
        logging.info('line 87 (out of loop)')
        # debugLog(jsonData)

        jsonData = str(jsonData)
        logging.info('line 91')
        jsonData = jsonData[:-1]
        logging.info('line 93')
        jsonData = jsonData.replace("'", '"')
        logging.info('line 95')
        jsonData = '[' + jsonData + ']'
        logging.info('line 97')

        # debugLog('\n', jsonData)
        return Response(jsonify(json.loads(jsonData)), mimetype='application/json')
        logging.info('line 101 (this should not show)')

        @application.errorhandler(500)
        def error(e):
            logging.warning(e + '\n\n\n What\'s happening here')
            return str(e)
        logging.info('line 107')
        application = ErrorMiddleware(application, debug=True, error_log='tmp/wsgi_error.log')
        logging.info('line 109')

    # if apargs.debug:
    #     application.run(host='0.0.0.0', debug=True, port=80)
except:
    logging.warning('line 114 (beginning of outer most try-except)')
    import sys, os
    logging.warning('line 116')

    from traceback import format_list, extract_tb
    logging.warning('line 119')
    (extype, value, trace) = sys.exc_info()
    logging.warning('line 121')

    sys.stderr.buffer.write("%s:%s\n%s" % (extype, value,''.join(format_list(extract_tb(trace)))))
    logging.warning('line 124 (EOF)')
这是我的目录树:

.
|-- .python-version
|-- public
|   |-- .htaccess
|   |-- favicon.gif
|   |-- favicon.ico
|   |-- passenger_wsgi.py
|   `-- quickstart.html
`-- tmp
    `-- restart.txt
这是我的.htaccess:

PassengerPython /home/dh_user/.pyenv/versions/3.5.2/envs/flask/bin/python

<VirtualHost *:80>
    # This Flask web app will use Python 3.0
    ServerName api.example.com
    DocumentRoot /home/dh_user/api.example.com/public
</VirtualHost>
编辑2:我使用粘贴Python模块从Flask收集错误,它给了我以下信息:

File '/home/dh_user/.pyenv/versions/3.5.2/envs/flask/lib/python3.5/site-packages/paste/exceptions/errormiddleware.py', line 224 in next
  return self.app_iterator.next()
AttributeError: 'ClosingIterator' object has no attribute 'next'

嗯,我好像已经修好了。我记得我做的是删除粘贴,然后再做一些事情。

请发送回溯。
File '/home/dh_user/.pyenv/versions/3.5.2/envs/flask/lib/python3.5/site-packages/paste/exceptions/errormiddleware.py', line 224 in next
  return self.app_iterator.next()
AttributeError: 'ClosingIterator' object has no attribute 'next'