1. 程式人生 > >Unity 在Mac上打包,執行python報Win32Exception的解決方案

Unity 在Mac上打包,執行python報Win32Exception的解決方案

Win32Exception: ApplicationName='python2.6', CommandLine='"Unity路徑/P31PostProcessor.pyc" "XCode生成路徑" "0" "0"', CurrentDirectory=''
System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process
process) System.Diagnostics.Process.Start ()

查了很久,本來想通過反編譯P31的DLL,放到Unity裡面,結果報錯太多,主要是屬性被反編譯後都改成get_XXX()方法,修改起來太麻煩。
然後就把P31裡面的onPostProcessBuildPlayer(BuildTarget target, string pathToBuiltProject)拷貝到自己寫的函式裡面,然後添加了個選單命令,呼叫。BUG就能很方便的重現了。
開始懷疑是找不到python2.6的可執行檔案,在終端裡執行了下,果然沒有。然後就自己安裝了python2.6的版本,新增到.bash_profile裡面,這是雖然終端裡能找到,但是執行build還是報錯。然後把呼叫裡面的
FileName = “python2.6”改成FileName = “python”結果可以正常執行。然後
由於工作的另一臺MAC沒問題,就兩臺電腦互相比較發現有問題的電腦在/usr/bin/目錄下缺少python2.6

的軟連線。後面就簡單了,在/usr/bin/目錄下建立一個軟連線就好了。注意如果建立到/usr/local/bin/目錄下,依然會報問題。
雖然問題解決的,但不知道為什麼不去找bash中設定的python2.6.只能找/Usr/bin/目錄下的
備註:如果python版本有問題的話,Unity裡面不會報錯,但是Editor.log中會報一個 bad magic number這樣的錯,python設定正確就可以了。