首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Maya首次加载时自动执行python脚本

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

Stack Overflow用户
提问于 2010-06-01 00:58:20
回答 4查看 11.8K关注 0票数 0

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

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

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

你知道怎么做吗?

EN

回答 4

Stack Overflow用户

发布于 2011-08-30 22:37:13

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

代码语言:javascript
复制
import tep
tep.psource()

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

代码语言:javascript
复制
import tep
reload(tep)
tep.psource()

如果希望模块在Maya启动时加载,请在maya/scripts目录中创建名为userSetup.py的文件,并使其执行以下操作:

代码语言:javascript
复制
import tep

然后,您的按钮可以简单地:

代码语言:javascript
复制
tep.psource()

或者..。

代码语言:javascript
复制
reload(tep)
tep.psource()
票数 2
EN

Stack Overflow用户

发布于 2012-10-05 19:41:18

作为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文件如下所示:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2010-09-10 05:53:27

您运行的是哪个版本的Maya?如果版本高于8.5,Maya会内置python。放置在本地Maya脚本目录中的任何python脚本都将自动获得源代码。您可以在脚本编辑器源文件中运行python脚本。

要自动运行:

在myDocs\maya\mayaVersion\scripts

  • Inside
  1. userSetup中创建userSetup.mel文件,使用以下语法导入和运行脚本:

代码语言:javascript
复制
python("from package import module");
python("module.method(\"passedVar1\", \"passedVar2\")");

希望这能有所帮助

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2944935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档