我试图在python(v2.7.3)上使用Flask(v0.10.1)运行PyV8(由pip,v1.0-dev安装),但应用程序在创建Global上下文时崩溃,没有知道出了什么问题的方法,因为没有异常被抓住。 这是我的代码:
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
当我试图在没有Flask的情况下运行PyV8时,它可以正常工作。 可能是什么原因?
答案 0 :(得分:0)
我发现了导致问题的原因 - 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
一切都按预期工作。我仍然不确定崩溃的原因,这需要进一步调查,但我现在决定不再使用它。