我有以下场景[文件的结构如下所示]。你知道吗
我有一个脚本script.py
,它包含一个函数,我调用这个函数来渲染图像。渲染器使用对某个库(opendr)的一些调用。你知道吗
我很沮丧地发现,如果脚本函数中的导入是按一定顺序进行的,那么我的渲染图像将完全是黑色的,但以不同的方式排列渲染将非常好。你知道吗
在处理了导入之后,我在script.py
:数据中发现了两个有问题的导入_路径.data\u路径和渲染。渲染。我进一步挖掘并发现了两个文件中有问题的导入:PI1inrender.py
和PI2indata_paths.py
。如果PI1是在PI2之前导入的,那么它就工作了,否则就不行了。我甚至尝试过导入PI1,然后data_paths.py
(导入PI2),然后render.py
(导入PI1),它就工作了。唯一重要的事情似乎是在PI2之前导入PI1,不管导入的文件在哪里。你知道吗
现在PI1是一个外部库调用,所以我对此无能为力,而PI2是一个内部库调用。所以我进一步调查。如果我将PI2导入的函数复制到data_paths.py
,则呈现工作正常(相同的名称,或者不同的名称-这无关紧要)。
如果我注释了utils.py
中定义的所有其他函数,但是PI2导入的函数和script.py
中需要的另一个函数,则它不起作用。你知道吗
我不明白为什么我会有这种行为,我如何才能确保我不会再有这种错误,因为我将使用render.py
中的函数很多,我不想总是乱丢我的导入,永远不能确定它是否会工作。你知道吗
我知道导入在script.py
中的顺序很重要,但我不明白为什么它会影响导入导入的函数。我也不明白为什么将函数get_machine.py
移动到data_paths.py
会有帮助,但是注释原始文件中所有多余的内容却没有帮助
很抱歉,我不能提供一个适当的演示,这是相当多的代码下的许可证和整个库安装。你知道吗
# script.py
from data_paths import data_paths
from render import render
def main():
render()
这是怎么回事渲染.py像疯子一样
# render.py
from opendr.renderer import ColoredRenderer # problematic import 1
# ... other imports
def render():
# function body
这就是数据_路径.py看起来像
# data_paths.py
from utils import get_machine # problematic import 2
if get_machine=='whatever':
RANDOM_GLOBAL_VARIABLE1 = 'value1'
else:
RANDOM_GLOBAL_VARIABLE1 = 'value2'
ANOTHER_GLOBAL_VARIABLE1 = 1
ANOTHER_GLOBAL_VARIABLE2 = 1
class data_paths:
a bunch of functions
最后,实用程序.py地址:
# utils.py
def get_machine():
# function body
def needed_function():
# function body
def not_needed_function1():
# function body
def not_needed_function2():
# function body
目前没有回答
相关问题 更多 >
编程相关推荐