烧瓶进口错误: 没有名为烧瓶的模块

我正在按照 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

这看起来类似于:

重要错误: 没有名为烧瓶的模块

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

684589 次浏览

尝试删除您创建的 viralenv,然后使用以下命令创建一个新的 viralenv:

virtualenv flask

然后:

cd flask

现在让我们激活虚拟世界

source bin/activate

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

编辑: 在 Windows 中没有 Linux 版本的“ source”,而是执行 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 dir 添加到 myapp.wsgi 文件中:

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

我想如果您在全局环境中安装这些软件包,那么应该没有问题,但是我以用户的身份安装了我的 python 软件包。

我也有过类似的问题。

原因是我总是使用

sudo pip install flask

但出于某种原因,这并不总是正确的方法。 有时候,你必须

pip install flask

另一个问题是,有时人们输入 pip install Flask第 F 章

把这个贴在这里,以防有人被卡住。 如果有帮助就告诉我。

有用链接: Pip 安装和 sudo pip 安装有什么区别?

  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

我也在学习烧瓶教程。我也遇到了同样的问题。我找到了解决这个问题的方法。

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

纠正安装解决了无烧瓶问题。

转到 microblog 中的 flask 文件,然后用 source bin/activate激活虚拟环境,然后转到 flask/bin 并安装 flask,以及其余的软件包 pip install flask。您将看到在 bin 目录中列出的烧瓶。尝试从 microblog (或者您拥有该文件的任何地方)再次运行 ./run.py

对于 python 3的使用

Pip3安装烧瓶

即使我也建议你虚拟一下, 这也许能解决你的问题。

sudo apt install python-flask

如果你想在 productionserver 中部署,那么继续使用上面的解决方案,否则就使用 viralenv。

在我的例子中,解决方案就像这样启动我的虚拟环境一样简单:

$ venv/scripts/activate

原来我对 Python 还是个新手:)

进入 Python 交互模式 然后:

import sys

sys.path

检查是否在 sys.path 中安装了烧瓶。

对于 MacOS,python 路径位于 /opt/local/Library/Framework/Python. Framework/Versions/2.7/lib/python2.7/site-package

但是 pip 将默认安装 python 包 /Library/Python/2.7/site-package

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

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

我就是这么做的,

sudo -H pip install flask

或者用于 pip3(python3) :

sudo -H pip3 install flask

旁注

如果你正在使用 viralenv,这是一个好主意 pip freeze >> requirements.txt 以便将已安装的软件包列在一个地方。 sudo命令和 -H标志。有关 sudo-H标志的更多信息,请参阅 保罗的 回答。 希望这个能帮到你。

升级了 pip 之后,这招对我很管用:

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

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

然后我可以直接安装烧瓶:

pip install flask

当我在 Windows 中遇到类似的错误时,下面的方法对我很有效:

  1. 安装 viralenv:

    pip install virtualenv
    
  2. 创建一个 viralenv:

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

    activate
    
  4. 安装烧瓶:

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

    python -m pip list
    

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

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

在我使用 Docker 的情况下,没有复制我的.env 文件,因此没有设置以下 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 项目时,您必须选择“现有解释器”选项-> 单击“ system Interpreter”-> 选择正确的选项,例如“ * AppData Local Programs Python Python3.6 Python.exe”。

您也可以使用‘ New Virtual Env’,但是我刚刚提供了一个快速修复程序,应该可以对 Pycharm 用户起作用。

另外,如果您正在使用 python3,请确保使用 python3 server.py而不是 python server.py启动服务器

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

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

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

export PYTHONPATH="path/my_user/code"

对你来说,解决办法是:

第一:

打开终端并导航到该 python 文件所在的目录/文件夹(在本例中,您创建的 python 文件是 run.py) ,并确保您已经在相同的目录/文件夹中安装了烧瓶。

第二:

现在,键入以下命令:

$python3“ pythonfilename”(在您的示例中,它的 $python3“ run.py”)

suuceessful

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

  1. 使用 venv 创建一个虚拟环境 $python3.6-m venv ——没有 -pip 虚拟
  2. 使用源虚拟/bin/active 激活虚拟环境
  3. 将 pip 下载到虚拟环境 curl https://bootstrap.pypa.io/get-pip.py | python 中
  4. 使用 pip 安装瓶安装烧瓶

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

首先需要创建一个 Python 环境

像这样:

 py -m venv YOUR_DIR_NAME

您也可以尝试这种解决 set FLASK_DEBUG=1 && python -m flask run的方法 这招对我很管用