Как автоматически выполнить скрипт Python при первой загрузке Maya - PullRequest
0 голосов
/ 31 мая 2010

Я пытаюсь понять, как использовать Python в Maya. Я хотел создать полку в Maya, и когда я нажму эту полку, она выполнит файл, содержащий код Python.

Во-первых, я понял, что мы не можем просто source скрипт python. Я следовал этому учебнику, так что теперь у меня есть функция psource(). На моей полке я могу просто позвонить psource("myPythonScript")

Моя проблема в том, что я должен как-то зарегистрироваться psource(), когда Maya впервые загрузилась.

Есть идеи, как это сделать?

Ответы [ 4 ]

2 голосов
/ 05 октября 2012

Как часть последовательности запуска Maya, он выполнит для вас файл с именем userSetup.py. В этом файле вы можете вставить стандартный код Python для настройки вашей среды и т. Д.

документы: http://download.autodesk.com/global/docs/maya2013/en_us/index.html?url=files/Python_Python_in_Maya.htm,topicNumber=d30e725143

Это документ 2013 года, но он действует и в 2011 и 2012 годах. Я ожидаю, что это будет правильным, если я вернусь дальше, но я не запускаю здесь ничего более старого

Например, мой файл userSetup.py выглядит так:

import sys

# import a separate pyscript dir - we keep the standard scriptdir for MEL
sys.path.append(r'C:/Users/tanantish/Documents/maya/2012-x64/pyscripts')

# odds on i'm going to want PyMEL loaded by default
# and we are going to try distinguish it from the old maya.cmds
# since the two since they're similar, but not the same.
# from pymel.core import *
import pymel.core as pm

# and we might as well get maya.cmds in for testing..
import maya.cmds as mc

# import local toolpack
import tantools

(отредактировано для исключения userSetup.py согласно комментарию @ jdi)

2 голосов
/ 30 августа 2011

Я предлагаю вам импортировать модуль Python с вашей кнопкой перед вызовом функции. Предполагая, что ваш скрипт находится в maya / scripts / tep.py, ваша кнопка будет делать следующее:

import tep
tep.psource()

Если вы хотите изменить скрипт и продолжать запускать новую версию каждый раз, когда вы нажимаете кнопку, сделайте следующее:

import tep
reload(tep)
tep.psource()

И если вы хотите, чтобы ваш модуль загружался при запуске Maya, создайте файл userSetup.py в каталоге maya / scripts и сделайте так:

import tep

Тогда ваша кнопка может просто:

tep.psource()

Или ...

reload(tep)
tep.psource()
0 голосов
/ 10 сентября 2010

Какую версию Maya вы используете? Если позже, чем 8.5, Maya имеет встроенный Python. Любые скрипты Python, которые вы помещаете в локальный каталог скриптов Maya, автоматически получают источник. Вы можете открыть исходный текст редактора сценариев и запустить сценарии Python.

Для автоматического запуска:

  1. Создайте файл userSetup.mel в myDocs \ maya \ mayaVersion \ scripts
  2. Внутри userSetup используйте этот синтаксис для импорта и запуска скриптов:
python("from package import module");
python("module.method(\"passedVar1\", \"passedVar2\")");

Надеюсь, это поможет

P.S Тот же синтаксис применяется для кнопок полки. Просто убедитесь, что у вас установлен путь Python для Maya, чтобы ваш код мог быть найден. Локальный каталог скриптов уже включен .....

0 голосов
/ 23 августа 2010

Мне нравится использовать

Exec (открытый ( 'C: \ любой \ независимо \ scriptname.py'))

Посмотрите, работает ли это для вас! :)

...