如何在首次加载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

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

首先,我发现我们不能简单地
source
python脚本。我遵循了教程,所以现在我有了一个函数
psource()
。在我的工具架中,我可以调用
psource(“myPythonScript”)

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

知道怎么做吗?

我喜欢用

exec(打开('c:\whater\whater\scriptname.py'))


看看这对你是否有效!:)

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

要自动运行:

  • 在myDocs\maya\mayaVersion\scripts中创建userSetup.mel文件
  • 在userSetup内部,使用以下语法导入和运行脚本:
  • 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()