我想弄清楚如何在Maya中使用Python。我想在Maya中创建一个架子,当我点击这个架子时,它将执行一个包含python代码的文件。如何在Maya第一次加载时自动执行python脚本
首先,我发现我们不能简单地使用source
python脚本。我跟着this教程,所以现在我有一个功能psource()
。在我的书架上,我可以拨打psource("myPythonScript")
我的问题是我必须先注册psource()
Maya第一次加载时。
任何想法如何做到这一点?
我想弄清楚如何在Maya中使用Python。我想在Maya中创建一个架子,当我点击这个架子时,它将执行一个包含python代码的文件。如何在Maya第一次加载时自动执行python脚本
首先,我发现我们不能简单地使用source
python脚本。我跟着this教程,所以现在我有一个功能psource()
。在我的书架上,我可以拨打psource("myPythonScript")
我的问题是我必须先注册psource()
Maya第一次加载时。
任何想法如何做到这一点?
我喜欢用
EXEC(开放( 'C:\什么\什么\ scriptname.py'))
看看是否能为你的作品! :)
你正在运行哪个版本的Maya?如果晚于8.5,Maya会内置Python。您放入本地Maya脚本目录的任何Python脚本都会自动获取。你可以在脚本编辑器的源代码中运行python脚本。
自动运行:
python("from package import module");
python("module.method(\"passedVar1\", \"passedVar2\")");
希望可以帮到
PS同样的语法适用于货架按钮。只需确保你已经为Maya设置了python路径,以便可以找到你的代码。本地脚本目录已经包含在内.....
Maya现在支持'userSetup.py',它与'userSetup.mel'互斥。您可以用py替换mel并将它们用作本机python命令。 – jdi 2012-12-13 19:30:58
我建议你在调用函数之前用你的按钮导入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()
由于玛雅启动序列的一部分,它会执行你叫userSetup.py
文件。在该文件中,您可以使用标准的Python代码来设置您的环境等。
那是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)
可能你被downvoted,因为这打开了一些安全威胁?会很好,downvoters需要20秒写一些东西... – 2014-09-05 06:29:53
这只是不回答这个问题,所以它是downvoted。它可能会执行一个脚本,但是它在Maya加载时无助于执行python脚本。 – 2016-07-26 22:53:17