烧瓶蓝图导入错误:没有模块命名

Posted

技术标签:

【中文标题】烧瓶蓝图导入错误:没有模块命名【英文标题】:Flask blueprint import error : no module named 【发布时间】:2020-10-26 20:12:27 【问题描述】:

嗨,今天我开始使用烧瓶

我正在尝试配置两个蓝图

我的项目结构如下图

这是我所有的项目代码

init.py

from flask import Flask
app = Flask(__name__)

from mod_image.controllers import mod_image 
from mod_home.home import mod_home 

#the app config
#app.config.from_object('config')

#declaring image registration module/blueprint
#from app.mod_image.controllers import mod_image as image_module


# Register blueprint(s)
app.register_blueprint(mod_home)
app.register_blueprint(mod_image)



if __name__ == "__main__":
    app.run()

controllers.py

from flask import Blueprint

mod_image = Blueprint('mod_image', __name__)

@mod_image.route('/register')
def register():
    return "This is an example app"

home.py

from flask import Blueprint

mod_home = Blueprint('mod_home', __name__)

@mod_home.route('/')
def showHome():
    return "This is a home"

这是错误日志

[2020 年 7 月 6 日星期一 17:24:05.338680] [wsgi:error] [pid 15407] [client ::1:38506] mod_wsgi (pid=15407): 无法执行 Python 脚本文件 '/var/www/ wanasissmarteye/wanasissmarteye.wsgi'。

[2020 年 7 月 6 日星期一 17:24:05.338731] [wsgi:error] [pid 15407] [client ::1:38506] mod_wsgi (pid=15407): 处理 WSGI 脚本“/var/www/wanasissmarteye”时发生异常/wanasissmarteye.wsgi'。

[2020 年 7 月 6 日星期一 17:24:05.338764] [wsgi:error] [pid 15407] [client ::1:38506] Traceback(最近一次通话最后一次):

[2020 年 7 月 6 日星期一 17:24:05.338805] [wsgi:error] [pid 15407] [client ::1:38506] 文件“/var/www/wanasissmarteye/wanasissmarteye.wsgi”,第 7 行,在

[2020 年 7 月 6 日星期一 17:24:05.338860] [wsgi:error] [pid 15407] [client ::1:38506] 从 wanasissmarteye 导入​​应用程序作为应用程序

[2020 年 7 月 6 日星期一 17:24:05.338889] [wsgi:error] [pid 15407] [client ::1:38506] 文件“/var/www/wanasissmarteye/wanasissmarteye/init .py”,第 11 行,在

[2020 年 7 月 6 日星期一 17:24:05.339028] [wsgi:error] [pid 15407] [client ::1:38506] 从 mod_home.home 导入 mod_home

[Mon Jul 06 17:24:05.339063 2020] [wsgi:error] [pid 15407] [client ::1:38506] ImportError: No module named mod_home.home

【问题讨论】:

【参考方案1】:

python 需要 __init__.py 文件才能将您的 mod_home 和 mod_image 识别为 模块并从中导入子模块。

在您要从中导入的每个文件夹的根目录中添加一个。

看到这个帖子:Importing files from different folder

【讨论】:

刚刚被发现【参考方案2】:

好的 因为我是 Python 的新手。 addind init.py 修复了这个问题 在我用谷歌搜索后

init.py 文件是 Python 将目录视为包含包所必需的;

【讨论】:

以上是关于烧瓶蓝图导入错误:没有模块命名的主要内容,如果未能解决你的问题,请参考以下文章

python模块未找到错误没有模块命名

将 graphql 集成到烧瓶蓝图中

《Python学习手册 第五版》 -第22章 模块:宏伟蓝图

uwsgi 和烧瓶 - 无法导入名称“appl”

使用烧瓶+蓝图发送邮件

尝试在 Apache2 上使用 WSGI 部署 Flask 时如何解决导入错误