python - 无法从终端运行 Flask, “No module named ' my_app'”

标签 python flask

我期待得到以下内容,但我只是停留在这一点上。

* Serving Flask app "app"
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在终端中,我尝试运行 FLASK_APP=run.py flask run ,然后得到

ModuleNotFoundError: No module named 'my_app’


当我尝试将命令中的名称更改为 FLASK_APP=__init__.py flask run ,我得到

Error: Failed to find application in module “myProject”. Are you sure it contains a Flask application? Maybe you wrapped it in a WSGI middleware or you are using a factory function.


这是我的项目结构:
myProject/
    |—my_app/
        |— source/
            |— __init__.py
            |— other .py files
        |— static/
        |— templates/
    |— __init__.py
    |— someFile.sqlite
    |— run.py
myProject/run.py包含两行代码:
from my_app import app 
app.run()
myProject/__init__.py不包含任何内容,空白。myProject/source/__init__.py也是空白的(但我猜这些文件只需要在这里?)
我在 PyCharm 下运行文件时遇到问题,但是当我在 Spyder Anaconda 中运行文件 run.py 时,我收到了说明服务器正在运行的预期消息。为什么它可以在 Spyder 上运行,而不是在 PyCharm 上运行?

最佳答案

在进入主题之前,您应该创建一个 __init__.pymy_app文件夹,它会把它变成一个python包,所以它可以被导入。

当你执行 flask run , flask 将寻找 app您使用 FLASK_APP 指定的模块中的实例, 所以 app.run()在这种情况下不需要。

你需要做什么?

  • 删除 run.py .
  • 设置 FLASK_APP到创建 flask 的模块名称/导入路径app实例(也许 my_app.source )。
  • 然后就做flask run .
  • 关于python - 无法从终端运行 Flask, “No module named ' my_app'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53016737/

    相关文章:

    python - 响应错误 : operation not permitted

    flask - 如何使用 Jinja 模板为选择字段设置默认选项

    python - 如何在 flask 中获取http header ?

    python - 使用条件对列表进行切片的优雅方式

    python - Tensorflow:如何将上一个时间步的输出作为输入传递到下一个时间步

    python - python中的线程编程

    javascript - 如何: Dynamically generate CSRF-Token in WTForms with Flask

    python - scikit-learn - 使用 svm.svc 分类器进行多标签分类,是否可以在没有probability=True的情况下进行?

    python - 使用 Selenium Web 驱动程序提取我想要的值时遇到问题

    python - 我应该使用线程或多处理来对 Python 进行暴力破解吗?