如果我的标题有误导性我很抱歉,因为我不确定如何写它。无论如何,我正在尝试加载一个文件(让我们称之为testNuke)并运行一个名为getNodes
的函数
我在Maya脚本编辑器中输入以下内容:
from nukeProcess.rendering import testNuke
testNuke.getNodes()
我收到错误ImportError: No module named nuke
。当我在网上搜索时,我发现import nuke
仅适用于Nuke应用程序脚本编辑器,并且让它在外部运行需要一些其他方法。
因此我想知道在执行2行代码时,我是否可以添加另一行来忽略import nuke
?否则,我是否真的必须在脚本中删除该行,重新保存然后执行它?
答案 0 :(得分:0)
你可以使用try和except方法
try:
from nukeProcess.rendering import testNuke
testNuke.getNodes()
except:
print 'Warning : nuke module can't be imported'
希望它有所帮助。
答案 1 :(得分:0)
需要对模块做一些假设
nuke
模块的任何函数仅在Nuke中调用,而不是您尝试在Maya中调用的函数。nuke
的模块,而不是每个导入通用渲染模块的基于Nuke和Maya的脚本。如果没有,请考虑重组它假设所有这些,您将要将import nuke
(在testNuke
模块中)包装在try..except块中:
try:
import nuke
except ImportError:
# handle it somehow
pass
您如何处理ImportError
取决于您。显然,正如我所写,任何调用Nuke函数的尝试都会引发NameError
。
如果您想为这些案例制作一个特殊例外,您应该使用nuke
方法编写我们自己的.__getattr__
类,这反过来会引发您的自定义异常。如果这是一条你想要帮助的路线,那么它可能超出了这个问题的范围,并且可以作为一个新的问题被提出,与Maya细节无关。