0

我正在为 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

4

1 回答 1

2

只要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 脚本编辑器)。如果 PackA 或 PackB 移动,它也会中断

# in PAMod2.py

from .. import PAMod1

PAMod1.Function()

python 文档在这里 ,这是关于同一(常见)主题的一个很好的 SO 问题

于 2013-08-10T20:10:00.243 回答