我想弄清楚如何在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