49

我正在运行以下代码

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello World!"
if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80, debug=True)

并得到以下错误

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from flask import Flask
  File "/home/pi/programs/flask.py", line 1, in <module>
    from flask import Flask
ImportError: cannot import name Flask

我已经尝试通过各种方法安装flask,但问题仍然存在

还有,烧瓶有什么替代品???

4

9 回答 9

174

我遇到了这个错误,因为我将测试文件命名为flask.py并尝试运行它!它会与真正的烧瓶模块产生命名空间冲突

删除您命名的本地测试文件flask.py和相应的flask.pyc。给个别的名字吧!这将发生在其他模块(如socketetc)中,您可能会为测试文件提供与标准模块相同的名称:-)

于 2013-10-19T20:42:15.013 回答
25

原因是你的 python 文件名是flask。

于 2016-08-10T09:27:13.263 回答
16

赶紧跑apt-get install python3-flask

编辑安装 python3 版本,因为现在没有人应该使用 python2。

于 2013-02-09T23:52:52.583 回答
11

只需重命名flask.py文件也删除flask.pyc文件

于 2014-05-22T12:32:29.723 回答
5

这是因为名称 flask.py。如果名称是flask.py,它将自行导入。更改名称并重试。

于 2018-08-16T15:46:56.900 回答
1

重启虚拟环境

$ virtualenv flask

进入 dir flask 运行

$source ./bin/activate

再次安装python模块

$pip install "module"
于 2016-12-21T08:22:48.983 回答
1

我遇到过同样的问题。显然你也不能命名你的文件socket.py

于 2017-04-13T17:30:38.293 回答
0

正是当我们将文件名创建为 flask.py 然后第一次执行它时,它会执行,同时框架会创建另一个名为 flask.pyc 的文件。现在停止进程并重新启动它会抛出这个错误查看实际框架烧瓶文件时,它正在查看您创建的文件。解决这个问题 转到你创建的flask.py文件夹并删除flask.pyc,然后将flask.py重命名为test_1.py ..保存并执行它。您应该看不到任何错误。

于 2016-01-13T20:25:08.830 回答
0

添加PYTHONPATH到您的环境: export PYTHONPATH=/root/environments/my_env/lib/python3.6/site-packages/

于 2019-12-16T00:26:56.243 回答