无法从终端“没有名为“ my_app”的模块”运行Flask

时间:2018-10-26 21:54:18

标签: 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:没有名为“ my_app”的模块

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

  

错误:无法在模块“ myProject”中找到应用程序。您确定它包含Flask应用程序吗?也许您将其包装在WSGI中间件中,或者正在使用工厂功能。

这是我的项目结构

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也为空(但我想这些文件只需要在这里吗?)

感谢进阶!

edit:我在PyCharm下运行文件时遇到麻烦,但是当我在Spyder Anaconda中运行文件run.py时,我得到了预期的消息,指出服务器正在运行。为什么它在Spyder上有效,但在PyCharm上无效?

2 个答案:

答案 0 :(得分:0)

输入主题之前,您应该在ptr2文件夹下创建一个__init__.py,它将变成一个python包,以便可以导入。

执行my_app时,flask将在用flask run指定的模块中查找app实例,因此在这种情况下不需要FLASK_APP

您需要做什么?

  1. 删除app.run()
  2. run.py设置为创建烧瓶FLASK_APP实例(可能是app)的模块名称/导入路径。
  3. 然后只需my_app.source

答案 1 :(得分:0)

找到上述问题的解决方案! PyCharm->偏好设置->项目解释器->(未安装烧瓶),所以我点击+按钮添加软件包,搜索并安装了烧瓶。关闭首选项后,我返回并运行run.py并成功了!我知道我使用的解释器中缺少该软件包的原因是,当我运行run.py时,我会得到“…/ .conda / envs / python3.6 / bin / python:没有名为flask的模块。”在终端上运行pip show flask时已经注意到,它给了我安装位置“位置:/Users/me/anaconda3/lib/python3.6/site-packages”。在查看两个路径位置时,我确定翻译器的位置不正确,因此当我更改路径时,它便开始工作。

此外,我不必在终端中使用任何命令来启动服务器。我只运行run.py文件。希望我的解释有意义。谢谢大家!