2010-05-31 254 views
0

我想弄清楚如何在Maya中使用Python。我想在Maya中创建一个架子,当我点击这个架子时,它将执行一个包含python代码的文件。如何在Maya第一次加载时自动执行python脚本

首先,我发现我们不能简单地使用source python脚本。我跟着this教程,所以现在我有一个功能psource()。在我的书架上,我可以拨打psource("myPythonScript")

我的问题是我必须先注册psource() Maya第一次加载时。

任何想法如何做到这一点?

回答

-2

我喜欢用

EXEC(开放( 'C:\什么\什么\ scriptname.py'))

看看是否能为你的作品! :)

+0

可能你被downvoted,因为这打开了一些安全威胁?会很好,downvoters需要20秒写一些东西... – 2014-09-05 06:29:53

+0

这只是不回答这个问题,所以它是downvoted。它可能会执行一个脚本,但是它在Maya加载时无助于执行python脚本。 – 2016-07-26 22:53:17

0

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

自动运行:

  1. 创建myDocs一个userSetup.mel文件\玛雅\ mayaVersion \脚本
  2. 的userSetup内,使用该语法来导入和运行脚本:
python("from package import module"); 
python("module.method(\"passedVar1\", \"passedVar2\")"); 

希望可以帮到

PS同样的语法适用于货架按钮。只需确保你已经为Maya设置了python路径,以便可以找到你的代码。本地脚本目录已经包含在内.....

+0

Maya现在支持'userSetup.py',它与'userSetup.mel'互斥。您可以用py替换mel并将它们用作本机python命令。 – jdi 2012-12-13 19:30:58

2

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

import tep 
tep.psource() 

如果你想修改剧本,并保持每次按下按钮时运行的新版本,这样做:

import tep 
reload(tep) 
tep.psource() 

如果你想你的模块对玛雅启动时加载,在Maya/scripts目录中创建一个名为userSetup.py文件,并把它做到这一点:

import tep 

然后,你的按钮就可以SIMP LY只是:

tep.psource() 

或者......

reload(tep) 
tep.psource() 
2

由于玛雅启动序列的一部分,它会执行你叫userSetup.py文件。在该文件中,您可以使用标准的Python代码来设置您的环境等。

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

那是2013 docco,但它在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 

(编辑以帽根据@ jdi的评论,输出userSetup.py)

+0

糟糕。我的不好.. @sfjedi基本上解释了这一点 - 我正在扫描,并没有看到答案中的usersetup.py .. – tanantish 2012-10-06 13:09:39

+0

它需要'userSetup.py'。帽子很重要。 – jdi 2012-12-13 19:29:31

相关问题