2

Python(v2.7.3)でFlask(v0.10.1)を使用してPyV8(pip、v1.0-devによってインストール)を実行しようとしていますが、グローバルコンテキストの作成時にアプリケーションがクラッシュします。何が起こったのかを知る方法はありません例外がキャッチされていないため、間違っています。これが私のコードです:

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 を実行しようとすると、正常に動作します。その理由は何ですか?

4

1 に答える 1

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

すべてが期待どおりに機能しました。クラッシュした理由はまだわかりません。さらに調査する必要がありますが、今のところ使用しないことにしました。

于 2014-10-21T08:12:13.360 に答える