我正在尝试从flask导入应用程序以进行单元测试,但是在导入时遇到了麻烦:
错误描述:回溯(最近一次通话最近):文件 “ tests.py”,第4行,在 从应用程序导入应用程序文件“ /home/master/Workspaces/eduCAT/faq-test/api/app.py”的第4行中 从.models导入Question,QuestionSchema,Message,MessageSchema ImportError:尝试相对导入(未知) 父包
我有一个文件树,所有文件都在同一文件夹中,如下所示:
Folder [api]
-> __init__.py
-> app.py
-> models.py
-> test.py
-> config.py
该API在烧瓶运行下运行良好,但是当我尝试将 app 导入到 test.py 时,却出现了此错误
进口: app.py
from flask import jsonify, request
from .models import Question, QuestionSchema, Message, MessageSchema
from api import app, db
进口: __ init __。py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
app = Flask(__name__)
app.config.from_object('api.config')
db = SQLAlchemy(app)
ma = Marshmallow(app)
进口: models.py
from api import db, ma
然后在 test.py
import os
import unittest
from app import app
我已经在 test.py 上尝试过的导入: 导入:
from app import app
错误:
回溯(最近一次通话最后一次):文件“ tests.py”,第4行,在 从应用程序导入应用程序文件“ /home/master/Workspaces/eduCAT/faq-test/api/app.py”的第4行中 从.models导入Question,QuestionSchema,Message,MessageSchema ImportError:尝试相对导入(未知) 父包
导入:
from .app import app
错误:
回溯(最近一次通话最后一次):文件“ tests.py”,第4行,在 从.app导入应用程序ModuleNotFoundError:没有名为“ 主 .app”的模块; “ 主要”不是软件包
导入:
from api import app
错误:
回溯(最近一次通话最后一次):文件“ tests.py”,第4行,在 从api导入应用程序ModuleNotFoundError中:没有名为“ api”的模块
我坚持参加这项考试。
修改 完整代码
app.py-https://dpaste.de/JgEi
__ init__.py-https://dpaste.de/A9sG
models.py-https://dpaste.de/xEx4
config.py-https://dpaste.de/o8pS
test.py-https://dpaste.de/nGrF
答案 0 :(得分:0)
您需要修复一些导入以运行代码...
从 init 导入对象的示例。您使用
来自。导入应用,数据库
或创建一个名为app的程序包,并在其中输入 init .py