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 docs はここ にあり、これは同じ(一般的な)トピックに関する良いSOの質問です

于 2013-08-10T20:10:00.243 に答える