2016-08-20 166 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中。 –

相关问题