2016-08-20 165 views
2

我想從我的UWP應用程序中找到一種方法來調用python。到目前爲止,我有一個使用pyinstaller從python編譯的.exe文件(www.pyinstaller.org/)。這基本上允許我將我的python腳本打包爲一個獨立的二進制文件(即:你不需要python來運行它)。這一切運作良好,我可以通過cmd.exe的打電話給我包起來蟒蛇.exe文件沒有問題:通用Windows平臺(UWP)C#應用程序 - 如何在您的應用程序內運行獨立的Python

$ process.exe -p「路徑\爲\文件」

$處理文件:「路徑\ to \ file「...

$完成。

所以現在我只需要從我UWP的應用程序調用它 - 所以我把它添加到我的應用程序,像這樣:

C#項目

資產/ process.exe

令人沮喪,我沒有太多的運氣谷歌搜索我的問題的答案 - 我的企圖解決方案離子到目前爲止還包括:

  • 從我的應用程序
  • 在看着調用「資產/ process.exe」直接「啓動一個應用程序,並得到結果。」我認爲這是接受外部應用程序的接縫,但是我肯定沒有理會它。
  • 打開cmd.exe(以某種方式)並從那裏調用我的process.exe。

我甚至不確定我是否試圖以正確的方式做到這一點。或者如果我只是不瞭解我的一些發現。或者(手指交叉)有一個簡單的解決方案,我只是不知道和不知何故錯過了,因爲我對UWP開發和C#很陌生。

所以任何解決方案/指針在這裏將不勝感激謝謝!

回答

0

UWP應用程序是'沙箱';即它們有許多安全限制,以將它們與Windows的其餘部分隔離(如不能夠讀/寫註冊表並且不能從文件系統直接訪問隨機文件)。

因此無法從UWP應用程序運行.exe(或任何其他可執行文件)。如果您有權訪問StorageFile(例如音樂,視頻或任何其他文件格式),那麼您可以在與該文件類型關聯的默認程序中使用launch the file

+0

嗨Aniruddha Varma - 非常感謝您的快速響應! 好吧,這是有道理的。那麼你(或任何人)是否知道我可以讓我的Python代碼和依賴項在UWP項目中運行?例如:我的UWP應用程序可以訪問另一種可以編譯我的Python應用程序的文件格式。 或者我完全使用錯誤的項目類型? 或者我正在嘗試做的事情目前是不可能的,唯一的解決辦法就是在c#中完全重寫我的python程序? –

+0

另外爲了澄清 - 我真的只是擔心在這個時候的桌面應用程序。 –

+0

@ WilliamTonkin-Howe您可以開發一個桌面應用程序(WPF或WinForms - 它沒有任何安全限制)。您可以使用Iron Python(https://en.wikipedia.org/wiki/IronPython)將python庫(我沒有親自嘗試過)整合到.NET中。 –

相關問題