我正在为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
来调用模块?
答案 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