Ошибка атрибута Werkzeug: объект ‘module’ не имеет атрибута ‘InteractiveInterpreter’

#python #flask #werkzeug

#python #flask #werkzeug

Вопрос:

При попытке запустить код с помощью Flask (0.8) и Werkzeug (0.8.1) app.run(debug=True) я получаю описанную ниже ошибку. При использовании ошибок нет app.run()

Ошибка

 Traceback (most recent call last):
File "code2.py", line 9, in <module>
    app.run(debug=True)
File "/<snip>/env/lib/python2.7/site-packages/Flask-0.8-py2.7.egg/flask/app.py", line 703, in run
    run_simple(host, port, self, **options)
File "/<snip>/env/lib/python2.7/site-packages/Werkzeug-0.8.1-py2.7.egg/werkzeug/serving.py", line 587, in run_simple
    from werkzeug.debug import DebuggedApplication
File "/<snip>/env/lib/python2.7/site-packages/Werkzeug-0.8.1-py2.7.egg/werkzeug/debug/__init__.py", line 14, in <module>
    from werkzeug.debug.tbtools import get_current_traceback, render_console_html
File "/<snip>/env/lib/python2.7/site-packages/Werkzeug-0.8.1-py2.7.egg/werkzeug/debug/tbtools.py", line 19, in <module>
    from werkzeug.debug.console import Console
File "/<snip>/env/lib/python2.7/site-packages/Werkzeug-0.8.1-py2.7.egg/werkzeug/debug/console.py", line 144, in <module>
    class _InteractiveConsole(code.InteractiveInterpreter):
AttributeError: 'module' object has no attribute 'InteractiveInterpreter'
 

Код (code.py )

 from flask import Flask
app = Flask(__name__)

@app.route('/news/')
def news():
    pass

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

Шаги, предпринятые для воссоздания ошибки

 $ cd <project directory>
$ . env/bin/activate # Activates virtuanlenv environment (see below for packages)
$ python code.py
 

Содержимое моих пакетов env / lib / python2.7 / site (версии различных используемых библиотек) через virtualenv

 Flask-0.8-py2.7.egg
Jinja2-2.6-py2.7.egg
pip-1.0.2-py2.7.egg
setuptools-0.6c11-py2.7.egg
Werkzeug-0.8.1-py2.7.egg
 

То, что я пытался решить эту проблему до сих пор, не помогло (к сожалению)

  • Обширный поиск в Google / SO
  • Сильное упрощение моего кода
  • Удаление созданного virtualenv и всех библиотек и переустановка через easy_install

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

Большое спасибо за вашу помощь!

Ответ №1:

Проблема в том, что вы назвали свой модуль code.py . code это встроенный модуль Python, который использует werkzeug.

Чтобы устранить проблему, переименуйте свой code.py во что-то другое и убедитесь, что вы удалили code.pyc файл.

Комментарии:

1. Когда Александр Грэм Белл изобрел телефон, у него было три пропущенных вызова от @codeape

Ответ №2:

Решение вашей проблемы — это ваше имя файла; не называйте имя вашего файла python как code.py , main.py , Flask.py , os.py , system.py . Вместо этого вы можете использовать code1.py или что-то в этом роде.