Python 不一致的导入变量
我有一个烧瓶应用程序,我遇到了一个导入不一致的问题。基本上,每当我运行测试时,应用程序都会在项目根目录的Python 不一致的导入变量,python,python-3.x,flask,python-import,Python,Python 3.x,Flask,Python Import,我有一个烧瓶应用程序,我遇到了一个导入不一致的问题。基本上,每当我运行测试时,应用程序都会在项目根目录的app.py中正确导入我的路由器。但是,每当我在运行我的app.py时导入路由器时。通过使用dir()打印出可用的模块来验证这一点 我的错误消息是name错误:未定义名称“路由器” 我的每个目录中都有init.py文件 project\u root/app.py from flask import Flask from src.router import * app = Flask(__na
app.py
中正确导入我的路由器。但是,每当我在运行我的app.py
时导入路由器时。通过使用dir()
打印出可用的模块来验证这一点
我的错误消息是name错误:未定义名称“路由器”
我的每个目录中都有init.py文件
project\u root/app.py
from flask import Flask
from src.router import *
app = Flask(__name__)
app.register_blueprint(router)
if __name__ == "__main__":
app.run()
from flask import request, Response, Blueprint
router = Blueprint('router', __name__)
project\u root/src/router.py
from flask import Flask
from src.router import *
app = Flask(__name__)
app.register_blueprint(router)
if __name__ == "__main__":
app.run()
from flask import request, Response, Blueprint
router = Blueprint('router', __name__)
当我使用APP_ENV=testing python3-m unittest discover
运行测试时,我看到以下输出为dir()
[“蓝图”、“烧瓶”、“迁移”、“响应”、“路由器”]
但是,当运行app.py
时,我看到了没有路由器的相同输出
我确保sys.path
是相同的,因此与正在检查的路径没有任何不一致
有人知道为什么我的测试允许导入这个变量,并且正常运行它是不起作用的吗?你的
PYTHONPATH是什么吗?
?我在运行这些命令时显式设置它,以确保它们是相同的。从项目根目录下的命令行运行这些文件时,我会执行PYTHONPATH='.'python3 app.py
或运行测试时执行PYTHONPATH='.'python3-m unittest discover
。