我有一个Flask应用程序,我遇到了导入不一致的问题。基本上每当我运行测试时,应用程序都会在项目根目录的app.py
中正确导入我的路由器。但是,每当我运行我的app.py
时导入路由器。通过使用dir()
打印出可用模块来验证这一点。
我的错误讯息是NameError: name 'router' is not defined
我的每个目录中都有 init .py文件。
project_root/app.py
from flask import Flask
from src.router import *
app = Flask(__name__)
app.register_blueprint(router)
if __name__ == "__main__":
app.run()
project_root/src/router.py
from flask import request, Response, Blueprint
router = Blueprint('router', __name__)
当我使用APP_ENV=testing python3 -m unittest discover
运行测试时,我将以下输出视为dir()
['Blueprint', 'Flask', 'Migrate', 'Response', ..., 'router']
然而,在运行app.py
时,我看到没有路由器的相同输出。
我确保sys.path
是相同的,因此与正在检查的路径没有任何不一致。
任何人都有任何线索为什么我的测试允许导入这个变量并且正常运行它不起作用?