2011-07-25 13 views
5

Seguí documento oficial, virtualenv instalado y el frasco, y luego python hello.py Pero hay algo malo:frasco de "hola mundo" no se puede ejecutar en el modelo de depuración

* Running on http://127.0.0.1:5000/ 
* Restarting with reloader: inotify events 
Traceback (most recent call last): 
    File "hello.py", line 9, in <module> 
    app.run(debug=True) 
    File "/home/aa/prj/env/lib/python2.7/site-packages/Flask-0.7.2-py2.7.egg/flask/app.py", line 553, in run 
    return run_simple(host, port, self, **options) 
    File "/home/aa/prj/env/lib/python2.7/site-packages/Werkzeug-0.7-py2.7.egg/werkzeug/serving.py", line 609, in run_simple 
    run_with_reloader(inner, extra_files, reloader_interval) 
    File "/home/aa/prj/env/lib/python2.7/site-packages/Werkzeug-0.7-py2.7.egg/werkzeug/serving.py", line 528, in run_with_reloader 
    reloader_loop(extra_files, interval) 
    File "/home/aa/prj/env/lib/python2.7/site-packages/Werkzeug-0.7-py2.7.egg/werkzeug/serving.py", line 436, in reloader_loop 
    reloader(fnames, interval=interval) 
    File "/home/aa/prj/env/lib/python2.7/site-packages/Werkzeug-0.7-py2.7.egg/werkzeug/serving.py", line 464, in _reloader_inotify 
    mask = reduce(lambda m, a: m | getattr(EventsCodes, a), mask, 0) 
    File "/home/aa/prj/env/lib/python2.7/site-packages/Werkzeug-0.7-py2.7.egg/werkzeug/serving.py", line 464, in <lambda> 
    mask = reduce(lambda m, a: m | getattr(EventsCodes, a), mask, 0) 
AttributeError: type object 'EventsCodes' has no attribute 'IN_DELETE_SELF' 

mi hello.py:

from flask import Flask 
app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return "Hello World!" 

if __name__ == '__main__': 
    app.run(debug=True) 

pero si sin depurar está bien? ¿por qué? mis /env/lib/python2.7/site-packages:

distribute-0.6.10-py2.7.egg 
Jinja2-2.6-py2.7.egg 
Werkzeug-0.7-py2.7.egg 
easy-install.pth 
pip-0.7.2-py2.7.egg 

Respuesta

5

Esto parece ser un error provocado por un cambio en la API de pyinotify, que también debe haber instalado. Puedes eliminar pyinotify o usar un hack sucio para forzarlo a utilizar stat() en lugar de pyinotify. A la línea 496 de werkzeug/serving.py intento de añadir (por debajo de la parte donde se intenta importar pyinotify):

# dirty hack 
reloader = _reloader_stat_loop 
reloader_name = "stat() polling" 

Asegúrese de informar también el fallo a los desarrolladores werkzeug.

+3

Sí, se solucionará en werkzeug 0.7.1. Y hubo otro problema similar con IPython. – plaes

+0

Eso es útil. ¡Gracias! – dormouse

Cuestiones relacionadas