Flask ImportError:没有名为Flask的模块

bcl*_*man 75 python flask

我在这里关注Flask教程:

http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

我到达了尝试./run.py的地步,我得到:

Traceback (most recent call last):
  File "./run.py", line 3, in <module>
    from app import app
  File "/Users/benjaminclayman/Desktop/microblog/app/__init__.py", line 1, in <module>
    from flask import Flask
ImportError: No module named flask
Run Code Online (Sandbox Code Playgroud)

这看起来类似于:

ImportError:没有名为flask的模块

但他们的解决方案没有帮助.作为参考,我有这一个用户提到可能会导致问题的文件夹命名的烧瓶中.

Rol*_*ack 115

尝试删除您创建的virtualenv.创造一个新的virtualenv

virtualenv flask
Run Code Online (Sandbox Code Playgroud)

然后

cd flask
Run Code Online (Sandbox Code Playgroud)

让我们激活virtualenv

source bin/activate
Run Code Online (Sandbox Code Playgroud)

现在您应该在命令行的左侧看到(flask).我们来安装烧瓶吧

pip install flask
Run Code Online (Sandbox Code Playgroud)

然后创建一个文件hello.py

from flask import Flask
app = Flask(__name__)

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

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

并运行它

python hello.py
Run Code Online (Sandbox Code Playgroud)

更新Flask 1.0.2

使用新的烧瓶版本,无需从脚本运行应用程序.hello.py应该现在看起来像这样:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"
Run Code Online (Sandbox Code Playgroud)

并运行它

FLASK_APP=hello.py flask run
Run Code Online (Sandbox Code Playgroud)

确保在运行最新命令时位于hello.py所在的文件夹中.

创建hello.py之前的所有步骤也适用于此情况

  • 只要在启用virtualenv的情况下运行它,就可以将其放置在任何地方。 (3认同)

Kha*_*uda 39

对于python 3使用

pip3安装烧瓶

  • 将我的python版本从2.7更改为3后,它工作正常! (3认同)

sam*_*aya 12

当我在 Windows 中遇到类似错误时,这对我有用:

  1. 安装虚拟环境:

    pip install virtualenv
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建一个虚拟环境:

    virtualenv flask
    
    Run Code Online (Sandbox Code Playgroud)
  3. 导航到脚本并激活 virtualenv:

    activate
    
    Run Code Online (Sandbox Code Playgroud)
  4. 安装烧瓶:

    python -m pip install flask
    
    Run Code Online (Sandbox Code Playgroud)
  5. 检查flask是否安装:

    python -m pip list
    
    Run Code Online (Sandbox Code Playgroud)


Eva*_*van 11

另一件事 - 如果您使用 python3,请确保您使用 启动服务器python3 server.py,而不是python server.py

  • 我对此表示赞同——这是一个常见/简单的错误! (3认同)

Jul*_*ian 10

我能解决的唯一方法是将我的用户python dir添加到myapp.wsgi文件中.举个例子:

sys.path.append('/home/deployer/anaconda3/lib/python3.5/site-packages')
Run Code Online (Sandbox Code Playgroud)

我想如果你在全球环境中安装软件包,你应该没有问题,但我已经以用户身份安装了我的python软件包.


raw*_*ium 8

这对我有用,

sudo -H pip install flask

或者对于 pip3(python3) 使用:

sudo -H pip3 install flask

边注

如果您使用的是 virtualenv,那么pip freeze >> requirements.txt 允许将已安装的软件包列在一个地方是个好主意 。该sudo命令和-H标志。欲了解更多有关sudo-H标志,看看保罗的 回答。希望这对你有帮助。


小智 7

激活虚拟环境并安装Flask之后,我创建了一个app.py文件。我运行这样的:python -m flask run。希望这会有所帮助!


ane*_*shi 6

我对flasgger也有类似的问题。

原因是我经常使用

sudo pip install flask

但是由于某些原因,这并不总是可行的。有时候,你必须要做的只是

pip install flask

另一个陷阱是有时人们会pip install Flask大写字母F键入

如果有人卡住,请将其张贴在这里。让我知道是否有帮助。

有用的链接: pip install和sudo pip install有什么区别?