sudoy
V2EX  ›  问与答

Python flask 报错解决办法

  •  
  •   sudoy · Feb 23, 2022 · 1607 views
    This topic created in 1545 days ago, the information mentioned may be changed or developed.

    今天运行 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 是不存在这个问题的,大家遇到过这样的问题吗?

    3 replies    2022-02-24 07:21:17 +08:00
    SjwNo1
        1
    SjwNo1  
       Feb 23, 2022   ❤️ 1
    __init__.py 删了
    ClericPy
        2
    ClericPy  
       Feb 24, 2022   ❤️ 2
    稍微理解一下包的结构吧...

    flask run 是当包启动的, app 里导入 util 时通过相对路径(因为是同一个包)
    python app.py 是把 app 当 module 启动的, 当前路径会算在 sys.path 里面所以会导入成功
    sudoy
        3
    sudoy  
    OP
       Feb 24, 2022
    @ClericPy 谢谢大佬,清晰明了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4878 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 09:39 · PVG 17:39 · LAX 02:39 · JFK 05:39
    ♥ Do have faith in what you're doing.