【问题标题】:ModuleNotFoundError in flask app while importing 'app' folder导入'app'文件夹时烧瓶应用程序中的ModuleNotFoundError
【发布时间】:2021-05-21 17:36:22
【问题描述】:

我在使用此目录结构运行烧瓶应用程序时遇到 ModuleNotFoundError

project
     | app
          | __init__.py
          | urls.py
          | views.py
     | __main__.py

在项目目录中,运行 python3 . 时,我得到了一个

File "./app/__init__.py", line 4, in <module>
    import urls
ModuleNotFoundError: No module named 'urls'

__init__.py的内容是

#!/usr/bin/env python3
import logging
import flask_cors
import urls
from views import flask_app

log = logging.getLogger("werkzeug")
log.disabled = True
flask_cors.CORS(flask_app)

def run(host, port):
    flask_app.run(host=host, port=port)

代码有点大,所以this是它的链接。

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    如果要在__init__.py文件中导入同目录下的其他文件,需要使用相对导入语法:

    from . import urls
    

    这样,Python 会在 __init__.py 旁边查找 urls.py,而不是在 sys.path 中搜索。

    【讨论】:

    • 有没有办法从模块中导入对象,即from ./views import flask_app,哪个ofc不是正确的说法?
    • @HackaTunes from .view import something 应该这样做。
    • ImportError: 在没有已知父包的情况下尝试相对导入
    • @HackaTunes 嗯,现在只需删除点 (from view)
    • Oooookkkkkkkkkk 我打错了,现在一切都好了:D
    猜你喜欢
    • 2015-09-07
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    相关资源
    最近更新 更多