2010-05-31 63 views
0

我想弄清楚如何在Maya中使用Python。我想在Maya中創建一個架子,當我點擊這個架子時,它將執行一個包含python代碼的文件。如何在Maya第一次加載時自動執行python腳本

首先,我發現我們不能簡單地使用source python腳本。我跟着this教程,所以現在我有一個功能psource()。在我的書架上,我可以撥打psource("myPythonScript")

我的問題是我必須先註冊psource() Maya第一次加載時。

任何想法如何做到這一點?

回答

-2

我喜歡用

EXEC(開放( 'C:\什麼\什麼\ scriptname.py'))

看看是否能爲你的作品! :)

+0

可能你被downvoted,因爲這打開了一些安全威脅?會很好,downvoters需要20秒寫一些東西... – 2014-09-05 06:29:53

+0

這只是不回答這個問題,所以它是downvoted。它可能會執行一個腳本,但是它在Maya加載時無助於執行python腳本。 – 2016-07-26 22:53:17

0

你正在運行哪個版本的Maya?如果晚於8.5,Maya會內置Python。您放入本地Maya腳本目錄的任何Python腳本都會自動獲取。你可以在腳本編輯器的源代碼中運行python腳本。

自動運行:

  1. 創建myDocs一個userSetup.mel文件\瑪雅\ mayaVersion \腳本
  2. 的userSetup內,使用該語法來導入和運行腳本:
python("from package import module"); 
python("module.method(\"passedVar1\", \"passedVar2\")"); 

希望可以幫到

PS同樣的語法適用於貨架按鈕。只需確保你已經爲Maya設置了python路徑,以便可以找到你的代碼。本地腳本目錄已經包含在內.....

+0

Maya現在支持'userSetup.py',它與'userSetup.mel'互斥。您可以用py替換mel並將它們用作本機python命令。 – jdi 2012-12-13 19:30:58

2

我建議你在調用函數之前用你的按鈕導入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() 
2

由於瑪雅啓動序列的一部分,它會執行你叫userSetup.py文件。在該文件中,您可以使用標準的Python代碼來設置您的環境等。

文檔:http://download.autodesk.com/global/docs/maya2013/en_us/index.html?url=files/Python_Python_in_Maya.htm,topicNumber=d30e725143

那是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)

+0

糟糕。我的不好.. @sfjedi基本上解釋了這一點 - 我正在掃描,並沒有看到答案中的usersetup.py .. – tanantish 2012-10-06 13:09:39

+0

它需要'userSetup.py'。帽子很重要。 – jdi 2012-12-13 19:29:31

相關問題