2013-08-10 5 views
0

Я определяю новый конвейер Python для Maya 2012, и у меня возникают трудности с настройкой пакета должным образом.Относительный импорт Python не работает в Maya

у меня есть:

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

Какой Python версии - это __does__ разница? –

+0

Его 2.7x для майя – theodox

+0

@theodox все версии майя, до 2013 года, используют 2.6 –

ответ

1

пока Prod находится на пути питона, вы можете сделать это - самый безопасный способ, используя абсолютные пути

# in PAMod2.py 

import Prod.PackA.PAMod1 

Prod.PackA.PAMod1.Function() 

или (по-прежнему безопасно, легче типа):

# in PAMod2.py 

import Prod.PackA.PAMod1 as Mod1 

Mod1.Function() 

Вы также можете обратиться к пакету для сестер. Это работает только внутри модуля - вы можете сделать это в интерактивном режиме (т. Е. Из редактора сценариев майя). Это также будет перерыв, если Eather Packa или PackB движется

# in PAMod2.py 

from .. import PAMod1 

PAMod1.Function() 

питон документы являются here и это good SO question on the same (common) topic

Смежные вопросы