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
все работало как положено. Я до сих пор не уверен в причине, по которой произошел сбой, это требует дальнейшего расследования, но я решил пока не использовать его.