Maya中的Python相对导入失败

时间:2013-08-10 17:24:32

标签: python maya

我正在为Maya 2012定义一个新的Python管道,但我在设置包时遇到了困难。

我有:

Prod
    __init__.py
        PackA
            __init__.py
            PAMod1.py

        PackB
            __init__.py
            PBMod2.py

PAMod1
    def a():pass

PAMod2
    def b():pass

如何在PAMod1.b中致电PAMod2.b

如何使用Prod.PackA.PAMod1.a()内的全名PAMod2.b来调用模块?

1 个答案:

答案 0 :(得分:1)

只要 Prod 在python路径上,你就可以做到这一点 - 最安全的方式,使用绝对路径

# in PAMod2.py

import Prod.PackA.PAMod1

Prod.PackA.PAMod1.Function()

或(仍然安全,更容易打字):

# in PAMod2.py

import Prod.PackA.PAMod1 as Mod1 

Mod1.Function()

您也可以引用兄弟包。这仅适用于模块内部 - 您可以以交互方式(即,从maya脚本编辑器)执行此操作。如果eather PackA或PackB移动

,它也会破裂
# in PAMod2.py

from .. import PAMod1

PAMod1.Function()

python文档是here,这是good SO question on the same (common) topic