Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不一致的导入变量_Python_Python 3.x_Flask_Python Import - Fatal编程技术网

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