2016-08-02 74 views
1

我抄Blender.exe和所有相關文件到Azure API App然後嘗試用我這樣的自定義Python腳本來運行它(使用System.Dianostics.Process()):部署攪拌機天青應用

blender.exe --background --python myscript.py

但不能讓它跑正常。請注意,它在我的本地IIS中正常工作。

所以問題是Azure應用程序支持運行Blender嗎? (因爲Blender可能需要GPU支持機器才能運行,而Azure不支持GPU)

如果是,那麼怎麼看blender.exe命令返回什麼錯誤? (我無法遠程桌面Azure Api App手動不幸運行命令)

更新:

我可以運行以上成功地使用Azure Console命令行通過手動攪拌器腳本。 但是,當運行使用代碼System.Diagnostics.Process(腳本),它得到了StandardError的流這樣的錯誤:

Fatal Python error: Py_Initialize: can't initialize sys standard streams

OSError: [WinError 6] The handle is invalid

+0

我沒有使用它,但有一個[項目在github上](https://github.com/Azure/azure-batch-apps-blender)在azure上運行blender。 – sambler

回答

1

@MinhNguyen,根據維基捻,Azure的應用程序服務的page其中包括阿比應用程序不支持使用GDI場景+由於Win32k.sys(User32/GDI32)限制,但攪拌機適用於gdi32。所以不幸的是,攪拌機無法在Azure Api App上工作,請考慮Azure Cloud Service或虛擬機用於攪拌機。


更新: 作爲@MinhNguyen評論說,攪拌機可以手動在捻控制檯中運行,但它似乎攪拌機作品與GDI,因爲編譯攪拌器需要GDI32.LIB的。因此,解決此問題的方法是將包含blender.exe和相關的python腳本作爲webjob在Azure上運行。

+0

謝謝。但爲什麼我仍然可以在Kudu調試控制檯中使用命令行在Azure Api App中運行Blender腳本? –

+0

@MinhNguyen,我搜索了編譯攪拌器需要gdi32.lib,但我不確定只用cmd運行攪拌器是否需要gdi。如果您可以在Kudu控制檯中手動運行它,我認爲您可以嘗試將它們打包爲Webjob來運行。 –

+0

謝謝@PeterPan。我正在把它移到WebJob上,它工作。 –