如何在Maya首次加载时自动执行python脚本

时间:2010-05-31 16:58:20

标签: python pipeline maya

我想弄清楚如何在Maya中使用Python。我想在Maya中创建一个架子,当我点击该架子时,它将执行一个包含python代码的文件。

首先,我发现我们不能简单地source python脚本。我按照this教程,所以现在我有一个函数psource()。在我的书架上,我可以致电psource("myPythonScript")

我的问题是,当Maya首次加载时,我必须以某种方式注册psource()

知道怎么做吗?

4 个答案:

答案 0 :(得分:2)

我建议你在调用函数之前用你的按钮导入Python模块。假设您的脚本位于maya / scripts / tep.py中,您的按钮将执行以下操作:

import tep
tep.psource()

如果您想要修改脚本并在每次按下按钮时继续运行新版本,请执行以下操作:

import tep
reload(tep)
tep.psource()

如果您希望在Maya启动时加载模块,请在maya / scripts目录中创建一个名为userSetup.py的文件,并让它执行此操作:

import tep

然后,您的按钮可以只是:

tep.psource()

或者...

reload(tep)
tep.psource()

答案 1 :(得分:2)

作为Maya启动序列的一部分,它将为您执行一个名为userSetup.py的文件。在该文件中,您可以使用标准的python代码来设置环境等。

docs:http://download.autodesk.com/global/docs/maya2013/en_us/index.html?url=files/Python_Python_in_Maya.htm,topicNumber=d30e725143

这是2013年的docco,但它在2011年和2012年也有效。我希望它的回归也是正确的,但我没有在这里运行任何旧版本

对于btw示例,我的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

(根据@ jdi的评论编辑以限制userSetup.py)

答案 2 :(得分:0)

您正在运行哪个版本的Maya?如果晚于8.5,Maya内置了python。您放入本地Maya脚本目录的任何python脚本都会自动获取。您可以在脚本编辑器源代码中运行python脚本。

自动运行:

  1. 在myDocs \ maya \ mayaVersion \ scripts中创建userSetup.mel文件
  2. 在userSetup中,使用此语法导入并运行脚本:
  3. python("from package import module");
    python("module.method(\"passedVar1\", \"passedVar2\")");
    

    希望有所帮助

    P.S相同的语法适用于货架按钮。只需要确保为Maya设置了python路径,以便找到您的代码。已包含本地脚本目录.....

答案 3 :(得分:-2)

我喜欢用

EXEC(开放( 'C:\任何\任何\ scriptname.py'))

看看它是否适合你! :)