2014-09-22 1 views
2

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

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 без Колба он отлично работает. В чем может быть причина?

+0

Откуда вы знаете, что он падает и не висит на 'ctxt = PyV8.JSContext (g)'? –

+0

Я запускаю его в командной строке, поэтому приложение перестает работать, возвращается в командную строку, порт свободен, и мне нужно запустить его снова. – irenal

ответ

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 

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

 Смежные вопросы

  • Нет связанных вопросов^_^