PyV8 вылетает с Flask

Я пытаюсь запустить PyV8 (установленный pip, v1.0-dev) с Flask (v0.10.1) на python (v2.7.3), но приложение вылетает при создании глобального контекста, нет способа узнать, что произошло неправильно, потому что никакое исключение не ловится. Вот мой код:

from flask import Flask, request, Response
import PyV8

try:
    from flask.ext.cors import CORS
except ImportError:
    import os
    parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    os.sys.path.insert(0, parentdir)

    from flask.ext.cors import CORS

class Global(PyV8.JSClass):     
   def hello(self):
        print 'Hello'

app = Flask(__name__)
app.config['CORS_HEADERS'] = 'Content-Type'

CORS(app)

@app.route('/', methods=['GET'])
def index():
    try:
        print 'got to the route'
        g = Global()
        print 'Global was created'
        ctxt = PyV8.JSContext(g) 
        print 'context was created'
        ctxt.enter()
        print 'context was entered'                   
        ctxt.eval("hello()")            
    except Exception as e:
        print 'error'
        print 'exception occurred, value:', e.value 

if __name__ == '__main__':
    app.run(host='0.0.0.0') 

Вывод, который я получаю при запуске GET для этого приложения до его сбоя:

got to the route
Global was created

Когда я пытаюсь запустить PyV8 без Flask, он работает нормально. В чем может быть причина?

1 ответ

Решение

Я выяснил, в чем причина проблемы - CORS. После удаления этой части:

try:
    from flask.ext.cors import CORS
except ImportError:
    import os
    parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    os.sys.path.insert(0, parentdir)

    from flask.ext.cors import CORS

все работало как положено. Я до сих пор не уверен в причине, по которой произошел сбой, это требует дальнейшего расследования, но я решил пока не использовать его.

Другие вопросы по тегам