Werkzeug AttributeError:“模块”对象没有属性“InteractiveInterpreter”[重复]

问题描述 投票:0回答:2

使用 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-packages 的内容(使用的各种库的版本)通过 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

到目前为止我已经尝试解决这个问题,但没有帮助(不幸的是)

  • 广泛的谷歌搜索/SO搜索
  • 我的代码大大简化了
  • 删除创建的 virtualenv 和所有库并通过 easy_install 重新安装

奇怪的是,昨晚,这段代码运行良好。今天早上,在没有更改任何内容(据我所知)的情况下,代码无法正常运行。

非常感谢您的帮助!

python flask werkzeug
2个回答
41
投票

问题是您已将模块命名为

code.py
code
是 werkzeug 使用的内置 Python 模块 (https://docs.python.org/3/library/code.html)。

要解决此问题,请将

code.py
重命名为其他名称,并确保删除
code.pyc
文件。

2024 / Python 3.13 更新

Python 3.13(计划于 2024 年 10 月发布)将针对这种情况改进错误消息(请参阅 https://docs.python.org/3.13/whatsnew/3.13.html#improved-error-messages):

一个常见的错误是编写与标准同名的脚本 库模块。当这导致错误时,我们现在显示更多 有用的错误消息


0
投票

问题的解决方案是你的文件名;不要将 python 文件名命名为

code.py
main.py
Flask.py
os.py
system.py
。 相反,您可以使用
code1.py
或其他东西。

© www.soinside.com 2019 - 2024. All rights reserved.