2011-07-25 22 views
5

Śledziłem urzędowy dokument, zainstalowane virtualenv i kolby, a następnie python hello.py Ale coś jest nie tak:kolba "Hello World" nie można uruchomić w modelu debugowania

* 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' 

mój hello.py:

from flask import Flask 
app = Flask(__name__) 

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

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

ale jeśli bez debugowania jest ok? czemu? moi /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 

Odpowiedz

5

Wydaje się to być błąd wywołany przez zmiany pyinotify API, które należy również został zainstalowany. Możesz usunąć pyinotify lub użyć brudnego hacka, aby zmusić go do użycia stat() zamiast pyinotify. Do linii 496 z werkzeug/serving.py spróbuj dodać (poniżej części, w której próbuje importować pyinotify):

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

Upewnij się także zgłosić błąd do twórców werkzeug.

+3

Tak, zostanie to naprawione w werkzeug 0.7.1. I był inny podobny problem z IPythonem. – plaes

+0

To jest pomocne. Dziękuję! – dormouse