今天运行 flask run 的时候报错如下:
(env) Duang@Mac-mini mysite $ flask run
 * Serving Flask app 'app.py' (lazy loading)
 * Environment: development
 * Debug mode: on
Usage: flask run [OPTIONS]
Try 'flask run --help' for help.
Error: While importing 'mysite.app', an ImportError was raised.
我的项目简化版的文件结构如下:
mysite/
	static/
    	style.css
    templates/
    	index.html
    __init__.py
    app.py
    utils.py
经过排查发现是因为app.py中引入了utils.py的一个模块导致
from utils import send_mail
改为如下以后问题解决了
from .utils import send_mail
直接运行 python app.py 是不存在这个问题的,大家遇到过这样的问题吗?
|  |      1SjwNo1      2022-02-23 23:02:22 +08:00  1 把 __init__.py 删了 | 
|  |      2ClericPy      2022-02-24 00:07:34 +08:00  2 稍微理解一下包的结构吧... flask run 是当包启动的, app 里导入 util 时通过相对路径(因为是同一个包) python app.py 是把 app 当 module 启动的, 当前路径会算在 sys.path 里面所以会导入成功 |