You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask无法识别Hello World应用:'flask.hello'模块不存在问题求助

解决Flask定位Hello World应用时的ModuleNotFoundError和NoAppException问题

我来帮你排查这个问题——你遇到的ModuleNotFoundError: No module named 'flask.hello'和flask.cli.NoAppException,核心原因是FLASK_APP环境变量的设置格式有误,导致Flask错误解析了应用文件的路径。

先回顾下你的场景:

  • 你写了Flask官方的最简Hello World代码,文件名为hello.py
  • 设置了FLASK_APP='hello.py'和PYTHONPATH="."
  • 用命令flask run --host=0.0.0.0 --port=3000启动时出错

你的hello.py代码:

from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello_world():
    return 'Hello world!'

报错的回溯信息:

Traceback (most recent call last):
  File "/home/anna_user2/.venv/projects/web-plots/lib/python3.7/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
ModuleNotFoundError: No module named 'flask.hello'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/anna_user2/.venv/projects/web-plots/lib/python3.7/site-packages/flask/cli.py", line 338, in __call__
    self._flush_bg_loading_exception()
  File "/home/anna_user2/.venv/projects/web-plots/lib/python3.7/site-packages/flask/cli.py", line 326, in _flush_bg_loading_exception
    reraise(*exc_info)
  File "/home/anna_user2/.venv/projects/web-plots/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/anna_user2/.venv/projects/web-plots/lib/python3.7/site-packages/flask/cli.py", line 314, in _load_app
    self._load_unlocked()
  File "/home/anna_user2/.venv/projects/web-plots/lib/python3.7/site-packages/flask/cli.py", line 330, in _load_unlocked
    self._app = rv = self.loader()
  File "/home/anna_user2/.venv/projects/web-plots/lib/python3.7/site-packages/flask/cli.py", line 388, in load_app
    app = locate_app(self, import_name, name)
  File "/home/anna_user2/.venv/projects/web-plots/lib/python3.7/site-packages/flask/cli.py", line 250, in locate_app
    raise NoAppException('Could not import "{name}".'.format(name=module_name))
flask.cli.NoAppException: Could not import "flask.hello".

具体解决步骤

1. 修正FLASK_APP的设置格式

你之前设置FLASK_APP='hello.py'时加了单引号,这会让Shell把引号当成文件名的一部分,Flask进而错误地把它解析成flask.hello模块(误以为是flask包下的hello子模块),导致找不到应用。

正确的设置方式(去掉引号):

  • Linux/macOS终端:
    export FLASK_APP=hello.py
    
  • Windows命令提示符(cmd):
    set FLASK_APP=hello.py
    
  • Windows PowerShell:
    $env:FLASK_APP = "hello.py"
    

2. 确保当前工作目录正确

一定要在hello.py所在的目录下执行flask run命令。比如如果你的文件在/home/anna_user2/.venv/projects/web-plots,先切换目录:

cd /home/anna_user2/.venv/projects/web-plots

3. 验证PYTHONPATH(可选)

你的PYTHONPATH="."设置是没问题的,但可以用以下命令确认它包含当前目录:

  • Linux/macOS:
    echo $PYTHONPATH
    
  • Windows:
    echo %PYTHONPATH%
    

4. 备选启动方式(无需环境变量)

如果环境变量设置总是出问题,可以直接修改hello.py加上启动代码,然后用Python直接运行:
修改后的hello.py:

from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello_world():
    return 'Hello world!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000)

然后运行:

python hello.py

执行完以上步骤,你的Flask应用应该就能正常启动了。

内容的提问来源于stack exchange,提问作者Anna Naden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 19:38:12