如何在首次加载Maya时自动执行python脚本
我正在尝试找出如何在Maya中使用Python。我想在Maya中创建一个工具架,当我单击该工具架时,它将执行一个包含python代码的文件 首先,我发现我们不能简单地如何在首次加载Maya时自动执行python脚本,python,pipeline,maya,Python,Pipeline,Maya,我正在尝试找出如何在Maya中使用Python。我想在Maya中创建一个工具架,当我单击该工具架时,它将执行一个包含python代码的文件 首先,我发现我们不能简单地sourcepython脚本。我遵循了教程,所以现在我有了一个函数psource()。在我的工具架中,我可以调用psource(“myPythonScript”) 我的问题是,当Maya首次加载时,我必须以某种方式注册psource() 知道怎么做吗?我喜欢用 exec(打开('c:\whater\whater\scriptname
source
python脚本。我遵循了教程,所以现在我有了一个函数psource()
。在我的工具架中,我可以调用psource(“myPythonScript”)
我的问题是,当Maya首次加载时,我必须以某种方式注册psource()
知道怎么做吗?我喜欢用
exec(打开('c:\whater\whater\scriptname.py'))
看看这对你是否有效!:) 您正在运行哪个版本的Maya?如果晚于8.5,Maya将内置python。您放在本地Maya脚本目录中的任何python脚本都会自动获得源代码。您可以在脚本编辑器源代码中运行python脚本 要自动运行:
python(“来自包导入模块”);
python(“module.method(\“passedVar1\”,\“passedVar2\”);
希望有帮助
同样的语法适用于工具架按钮。只要确保为Maya设置了python路径,就可以找到代码。本地脚本目录已经包括在内。…我建议您在调用函数之前使用按钮导入Python模块。假设脚本位于maya/scripts/tep.py中,则按钮将执行以下操作:
import tep
tep.psource()
如果要修改脚本并在每次按下按钮时保持运行新版本,请执行以下操作:
import tep
reload(tep)
tep.psource()
如果希望在Maya启动时加载模块,请在Maya/scripts目录中创建一个名为userSetup.py的文件,并让它执行以下操作:
import tep
然后,您的按钮可以简单地:
tep.psource()
或者
作为Maya启动序列的一部分,它将为您执行名为
userSetup.py
的文件。在该文件中,您可以使用标准python代码来设置您的环境,等等
文件:
这是2013年的docco,但在2011年和2012年也有效。我希望它是正确的,更进一步,但我没有运行任何旧的在这里
例如,顺便说一句,我的userSetup.py文件如下所示:
导入系统
#导入单独的pyscript目录-我们保留MEL的标准scriptdir
sys.path.append(r'C:/Users/tanantish/Documents/maya/2012-x64/pyscripts')
#我希望PyMEL默认加载的几率
#我们将尝试将其与旧的maya.cmds区分开来
#因为两者相似,但不相同。
#从pymel.core导入*
将pymel.core导入为pm
#我们还可以让maya.cmds进行测试。。
将maya.cmds作为mc导入
#导入本地工具包
导入工具
(根据@jdi的评论,编辑为caps out userSetup.py)Oops。我的错@sfjedi基本上解释了这一点-我正在扫描,在回答中没有看到usersetup.py..它必须是
usersetup.py
。caps很重要。Maya现在支持userSetup.py
,它与userSetup.mel
相互排斥。您可以将mel替换为py,并将其用作本机python命令。您可能被否决,因为这会带来某种安全威胁??如果选民们能花20秒的时间写点东西就好了……这根本不能回答问题,所以这是被否决了。它可能会执行脚本,但在加载Maya时,它无助于执行python脚本。
reload(tep)
tep.psource()