【问题标题】:Use Python alongside C# in Windows UWP app在 Windows UWP 应用程序中使用 Python 和 C#
【发布时间】:2015-10-31 23:07:22
【问题描述】:

我开始使用 Python 编写应用程序,但现在想切换到 C# 和 UWP。我知道你不能用 Python 编写 UWP 应用程序,但我想看看我是否可以用 Python 编写一些代码并从 C# 访问该代码。

例如,用 Python 编写一个 C# 代码也可以访问的类。那可能吗?如果可以,Python 是否可以访问微软的 UWP API?

主要代码不会用 Python 编写;那是不可能的。但是 C# 和 Python 之间的互操作性是否存在,也许是 IronPython(.NET 的 Python)?

我将如何设置这样一个 Visual Studio 项目?我安装了适用于 Visual Studio 的 Python 工具,但没有内置选项可将 Python 文件添加到我的 UWP 应用。

【问题讨论】:

标签: c# python ironpython uwp language-interoperability


【解决方案1】:

由于框架限制,c# 中的“经典”python 解释器(如 IronPython)无法在商店应用中工作,因为您通过沙箱运行应用。

有些家伙已经将完整的 python 解释器移植到 WinRT on mercurial。当然,由于框架限制,整个标准库都不可用。 这适用于 WinRT,因此很可能适用于 UWP。

【讨论】:

  • 谢谢。有没有办法在 UWP 中执行 .exe 文件?我已将 ipy.exe 及其目录中的其他文件复制到我的项目中,现在正在尝试使用 C# 来执行它。
  • 不,由于沙盒,执行嵌入式或外部可执行文件是绝对不可能的。您需要将 DLL 添加为共享库
  • 为了运行为我的 UWP 应用程序执行某些特定任务的 .exe 文件,我将它们放在 Azure 上并在 RESTful API 后面运行它们。它工作得很好。您的应用程序对您的服务器进行 REST 调用,该服务器使用您在 REST 调用中使用的任何参数运行 .exe。它将结果吐出,然后服务器将其发回。
  • 我觉得这需要一些更正以确保准确性。 Appcontainer-sandboxed 桌面程序可以创建子进程,如果它们有权限,或者 - 使用默认权限/权限 - 如果 appcontainer-sandboxed 程序是命令行并且可执行文件的完整路径是已知的。资料来源:我最后几天的实验。此链接也可能会有所帮助:stackoverflow.com/a/44006005/7347121 appcontainer-programs 和 non-appcontainer-programs 之间的通信可以通过使用继承的句柄轻松实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多