在 Windows UWP 应用程序中使用 Python 和 C#

Posted

技术标签:

【中文标题】在 Windows UWP 应用程序中使用 Python 和 C#【英文标题】:Use Python alongside C# in Windows UWP app 【发布时间】: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 应用。

【问题讨论】:

有一些很棒的article about integrating a Lua interpreter into UWP - 也许这也可以使用 IronPython 来完成? 【参考方案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 程序是命令行并且可执行文件的完整路径是已知的。资料来源:我最后几天的实验。此链接也可能会有所帮助:***.com/a/44006005/7347121 appcontainer-programs 和 non-appcontainer-programs 之间的通信可以通过使用继承的句柄轻松实现。

以上是关于在 Windows UWP 应用程序中使用 Python 和 C#的主要内容,如果未能解决你的问题,请参考以下文章

在Windows 10 C#UWP通用Windows应用程序中获取UserName

如何使用 UWP 应用重新启动 Windows PC? [复制]

如何使用 C# 从 Windows 10 日历中检索 UWP 中的约会

您是不是已经在 Microsoft Store 中发布了 Windows 11 UWP 应用?

UWP

如何在 Windows 10 UWP 中复制和调整图像大小