我想弄清楚如何在Maya中使用Python。我想在Maya中创建一个架子,当我点击该架子时,它将执行一个包含python代码的文件。
首先,我发现我们不能简单地source
python脚本。我按照this教程,所以现在我有一个函数psource()
。在我的书架上,我可以致电psource("myPythonScript")
我的问题是,当Maya首次加载时,我必须以某种方式注册psource()
。
知道怎么做吗?
答案 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代码来设置环境等。
这是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脚本。
自动运行:
python("from package import module");
python("module.method(\"passedVar1\", \"passedVar2\")");
希望有所帮助
P.S相同的语法适用于货架按钮。只需要确保为Maya设置了python路径,以便找到您的代码。已包含本地脚本目录.....
答案 3 :(得分:-2)
我喜欢用
EXEC(开放( 'C:\任何\任何\ scriptname.py'))
看看它是否适合你! :)