我期待得到以下内容,但我只是停留在这一点上。
* 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__.py
下my_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/