Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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_Maya - Fatal编程技术网

Python 在执行脚本时忽略模块调用

Python 在执行脚本时忽略模块调用,python,maya,Python,Maya,我道歉,如果我的标题是误导,因为我不知道如何写它。无论如何,我正在尝试加载一个文件(我们称之为-testNuke)并运行其名为getNodes 在Maya脚本编辑器中键入以下内容时: from nukeProcess.rendering import testNuke testNuke.getNodes() 我得到了错误:没有名为nuke的模块。当我在网上搜索时,我发现,import nuke只在nuke应用程序脚本编辑器中起作用,让它在外部运行需要其他一些方法 因此,我想知道,当我执行2行代

我道歉,如果我的标题是误导,因为我不知道如何写它。无论如何,我正在尝试加载一个文件(我们称之为-testNuke)并运行其名为
getNodes
在Maya脚本编辑器中键入以下内容时:

from nukeProcess.rendering import testNuke
testNuke.getNodes()
我得到了错误:没有名为nuke的模块。当我在网上搜索时,我发现,
import nuke
只在nuke应用程序脚本编辑器中起作用,让它在外部运行需要其他一些方法


因此,我想知道,当我执行2行代码时,我是否可以添加另一行来忽略
import nuke
?否则,我真的必须在脚本中删除该行,重新保存它,然后执行它吗?

您可以使用try-and-except方法

try:
    from nukeProcess.rendering import testNuke
    testNuke.getNodes()
except:
    print 'Warning : nuke module can't be imported'

希望有帮助。

需要对您的模块进行一些假设

  • 使用了
    nuke
    模块的任何函数仅在nuke内部调用,而不是在Maya中尝试调用的函数的一部分
  • 您有一个很好的理由需要导入一个导入
    nuke
    的模块,而不是导入一个通用渲染模块的基于nuke和Maya的脚本。如果没有,请考虑重组它:
  • 您需要实际执行模块的某些部分,不能完全跳过它
  • 假设所有这些,您将希望在try中包装
    import nuke
    (它位于
    testNuke
    模块中)。除了块:

    try:
        import nuke
    except ImportError:
        # handle it somehow
        pass
    
    如何处理导入错误取决于您自己。显然,正如我所写的,任何调用Nuke函数的尝试都会引发
    NameError


    如果您想为这些情况创建一个特殊的异常,您应该使用
    \uuu getattr\uuuu
    方法编写我们自己的
    nuke
    类,这反过来会引发自定义异常。如果这是一条您希望得到帮助的路线,它可能超出了此问题的范围,可以作为一条新的路线提出,与您的Maya细节无关。

    我不理解您的问题。您的示例不包括任何
    import nuke
    import nuke
    位于
    testNuke
    文件中。。。