繁体   English   中英

Flask ImportError:没有名为 Flask 的模块

[英]Flask ImportError: No Module Named 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

这看起来类似于:

ImportError:没有名为flask的模块

但是他们的解决方案没有帮助。 作为参考,我确实有一个名为 flask 的文件夹,一位用户提到它可能会导致问题。

尝试删除您创建的 virtualenv。 然后创建一个新的virtualenv:

virtualenv flask

然后:

cd flask

现在让我们激活 virtualenv

source bin/activate

现在您应该在命令行左侧看到(flask)

编辑:在windows中没有“源”是linux的东西,而是执行activate.bat文件,这里我使用Powershell: PS C:\DEV\aProject> & .\Flask\Scripts\activate

让我们安装烧瓶:

pip install flask

然后创建一个名为hello.py的文件(注意:请参阅下面的UPDATE Flask 1.0.2 ):

from flask import Flask
app = Flask(__name__)

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

if __name__ == "__main__":
    app.run()

并运行它:

python hello.py

更新烧瓶 1.0.2

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

from flask import Flask
app = Flask(__name__)

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

并运行它:

FLASK_APP=hello.py flask run

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

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

对于 python 3 使用

pip3 安装烧瓶

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

sys.path.append('/home/deployer/anaconda3/lib/python3.5/site-packages')

我想如果你在全局环境中安装包,你应该没有问题,但是我以用户身份安装了我的 python 包。

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

这对我有用,

sudo -H pip install flask

或者对于 pip3(python3) 使用:

sudo -H pip3 install flask

边注

如果您使用的是 virtualenv,最好使用pip freeze >> requirements.txt以允许在一个位置列出已安装的包。 sudo命令和-H标志。 有关sudo-H标志的更多信息,请查看Paul 的回答 希望这对您有所帮助。

我对flasgger也有类似的问题。

原因是我总是使用

sudo pip install flask

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

pip install flask

另一个问题是有时人们键入pip install Flask并带有F

在这里张贴这个,以防有人被卡住。 让我知道它是否有帮助。

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

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

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

  1. 安装虚拟环境:

     pip install virtualenv
  2. 创建一个虚拟环境:

     virtualenv flask
  3. 导航到 Scripts 并激活 virtualenv:

     activate
  4. 安装烧瓶:

     python -m pip install flask
  5. 检查是否安装了烧瓶:

     python -m pip list
  1. 编辑/etc/apache2/sites-available/FlaskApp.conf
  2. 在“WSGIScriptAlias”行之前添加以下两行:

WSGIDaemonProcess FlaskApp python-home=/var/www/FlaskApp/FlaskApp/venv/FlaskApp WSGIProcessGroup FlaskApp

  1. 重启 Apache: service apache2 restart

我也在关注 Flask 教程。我遇到了同样的问题。我找到了解决它的方法。

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

我正在使用 python2 但安装了这个:sudo apt-get install libapache2-mod-wsgi-py3

而不是:sudo apt-get install libapache2-mod-wsgi

更正安装解决了没有烧瓶的问题。

就我而言,解决方案就像启动我的虚拟环境一样简单,如下所示:

$ venv/scripts/activate

事实证明我对 Python 还是很陌生 :)

进入微博的flask文件,然后用source bin/activate激活虚拟环境,然后进入flask/bin安装flask,剩下的包pip install flask 您将看到 bin 目录中列出的烧瓶。 尝试从微博(或从您拥有该文件的任何地方)再次运行./run.py

即使我也建议你使用 virtualenv,这也可能解决你的问题。

sudo apt install python-flask

如果您想在生产服务器中部署,请继续使用上述解决方案,否则请使用 virtualenv。

这个问题最简单的答案是在你的环境中指定正确的烧瓶路径。 确保您正在运行的脚本知道如何进行烧瓶安装。 使用上面提到的 print(sys.path) 肯定有助于找出脚本使用的路径。

然后进入你的python交互模式:

import sys

sys.path

它会打印你的路径。 检查烧瓶是否安装在 sys.path 中。

对于 MacOS,python 路径位于 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 下

但是 pip 默认会在 /Library/Python/2.7/site-packages 下安装 python 包

这就是为什么它不适用于 MacOS。

烧瓶脚本很适合启动本地开发服务器,但您必须在每次更改代码后手动重新启动它。 这不是很好,Flask 可以做得更好。 如果您启用调试支持,服务器将在代码更改时自行重新加载,并且如果出现问题,它还会为您提供有用的调试器。 要启用调试模式,您可以在运行服务器之前导出 FLASK_DEBUG 环境变量:例如,您的文件是 hello.py

$ export FLASK_APP=hello.py
$ export FLASK_DEBUG=1
$ flask run

在我使用 Docker 的情况下,我的 .env 文件没有被复制,因此没有设置以下环境变量:

.env.local: FLASK_APP=src/app.py

所以在我的Dockerfile中我必须包括:

FROM deploy as dev
COPY env ./env

在 docker-compose.yml 中被引用

env_file: ./env/.env.local

我必须注意的另一件事是路径变量,以确保使用我的环境

ENV PATH $CONDA_DIR/envs/:my_environment_name_from_yml_file:/bin:$CONDA_DIR/bin:$PATH```

我的回答仅适用于使用 Visual Studio Flesk Web 项目的任何用户:

只需右键单击“Python 环境”,然后单击“添加环境”

如果您使用的是 Pycharm,那么这是虚拟环境问题。

因此,在创建 Python 项目时,您必须选择“现有解释器”选项 -> 单击“系统解释器” -> 选择正确的选项,例如“*\AppData\Local\Programs\Python\Python3.6\蟒蛇.exe”。

您也可以使用“新虚拟环境”,但我刚刚给出了适用于 Pycharm 用户的快速修复。

我在使用 WSL 和 PyCharm / VSCode 时遇到了类似的问题,这个问题只发生在开发环境中,而不是生产环境中。 我意识到带有 WSL 的 IDE 在从其工作目录导出 PYTHONPATH 时可能会出现问题,因此我开始手动执行此操作。

在运行您的程序和在 VENV 中之前,请尝试运行以下命令:

export PYTHONPATH="path/my_user/code"

在您的情况下,解决方案是:

第一的:

打开终端并导航到该 python 文件所在的目录/文件夹(在您的情况下,您创建的 python 文件是 run.py)并确保您已在同一目录/文件夹中安装了 flask。

第二 :

现在,键入以下命令:

$python3 "pythonfilename" (在你的例子中,它的 $python3 "run.py")

成功的

我有同样的错误,它说找不到烧瓶模块。 这就是我所做的:

  1. 使用 venv 创建虚拟环境 $ python3.6 -m venv --without-pip virtual
  2. 使用 source virtual/bin/activate 激活虚拟环境
  3. 将 pip 下载到虚拟环境 curl https://bootstrap.pypa.io/get-pip.py | Python
  4. 使用 pip install flask 安装烧瓶

运行我的应用程序后,一切都很好。

你首先需要创建一个 Python 环境

像这样:

 py -m venv YOUR_DIR_NAME

你也可以试试这个解决方法set FLASK_DEBUG=1 && python -m flask run它对我有用

升级 pip 后它对我有用:

curl https://bootstrap.pypa.io/get-pip.py | python

在这里找到答案: https ://stackoverflow.com/a/49748494/3197202

然后我可以安装烧瓶:

pip install flask

安装特定版本:

pip install flash

升级闪存

sudo pip3 install --upgrade flash

在 Window 10 中出现依赖错误 使用代码:easy_install 而不是 pip install

easy_install flash 

使用简易安装升级

sudo easy_install --upgrade  flash

在 OSX 系统上安装模块:使用代码:brew install 而不是 pip install

brew install flash 

不使用 Pip :

 sudo apt-get install -y flash 

在 CentOS7 或 Linux Fedora 上:

yum -y install flash 

或者在 Fedora 上试试

sudo dnf install flash 

如果 Homebrew 在 macOS 上搞砸了你的路径,则命令:

python -m pip install flash 

对于 Python3 MacOs Homebrew 螺丝

python3 -m pip install flash

从列表 MacO 验证模块

pip freeze | grep  flash

在 Anaconda 上作为你的 python 包管理器执行

 conda install -c anaconda flash 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM