【问题标题】:Universal Windows Platform (UWP) C# app - How to run stand alone python inside your application通用 Windows 平台 (UWP) C# 应用程序 - 如何在应用程序中运行独立 python
【发布时间】:2016-08-20 11:30:50
【问题描述】:

我正在尝试找到一种从我的 UWP 应用程序调用 python 的方法。到目前为止,我有一个使用 pyinstaller (www.pyinstaller.org/) 从 python 编译的 .exe 文件。这基本上允许我将我的 python 脚本打包为一个独立的二进制文件(即:你不需要 python 来运行它)。这一切都很好,我可以通过 cmd.exe 调用我包装好的 python .exe 没问题:

$ process.exe -p "路径\到\文件"

$ 处理文件:“path\to\file”...

$ 完成。

所以现在我只需要从我的 UWP 应用程序中调用它 - 所以我已将它添加到我的应用程序中,如下所示:

C# 项目

资产/process.exe

令人沮丧的是,我没有太多运气在谷歌上搜索我的问题的答案 - 到目前为止,我尝试的解决方案包括:

  • 直接从我的应用调用“Assets/process.exe”
  • 查看了“启动应用程序并获得结果”。我认为这个接缝适用于外部应用程序......无论如何我当然没有得到它。
  • 打开 cmd.exe(不知何故)并从那里调用我的 process.exe。

我什至不确定我是否尝试以正确的方式执行此操作。或者,如果我只是不理解我的一些发现。或者(祈祷)有一个简单的解决方案,我只是不知道并且不知何故错过了,因为我对 UWP 开发和 C# 非常陌生。

因此,非常感谢这里的任何解决方案/指针!!

【问题讨论】:

    标签: c# windows uwp


    【解决方案1】:

    UWP 应用是“沙盒化”的;即它们有许多安全限制,以将它们与 Windows 的其余部分隔离(例如无法读取/写入注册表,也无法直接访问文件系统中的随机文件)。

    因此,无法从您的 UWP 应用运行 .exe(或任何其他可执行文件)。如果您有权访问StorageFile(比如音乐、视频或任何其他文件格式),那么您可以在与该文件类型关联的默认程序中使用launch the file

    【讨论】:

    • 嗨 Aniruddha Varma - 非常感谢您的快速回复!好的,这是有道理的。那么您(或任何人)是否知道我可以让我的 Python 代码和依赖项在 UWP 项目中运行的任何其他方式?例如:我的 UWP 应用程序可以访问的另一种文件格式,我可以将我的 Python 应用程序编译成。还是我完全使用了错误的项目类型?还是我目前正在尝试做的事情是不可能的,解决这个问题的唯一方法是完全用 c# 重写我的 python 程序?
    • 另外澄清一下 - 我现在真的只担心桌面应用程序。
    • @WilliamTonkin-Howe 您可以只开发一个桌面应用程序(WPF 或 WinForms - 它们没有任何安全限制)。您可以使用 Iron Python (en.wikipedia.org/wiki/IronPython) 将 python 库(我没有亲自尝试过)集成到 .NET。
    • @WilliamTonkin-Howe 如果您只想使用 UWP,可能很难让 python 代码与它一起工作。请参阅stackoverflow.com/questions/33457554/…
    猜你喜欢
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 2018-02-04
    • 1970-01-01
    • 2018-07-30
    • 2021-03-26
    相关资源
    最近更新 更多