9

Windows Store 应用Python 3 For Metro声称它允许用户编辑和运行 Python 文件(我无法让它工作)。这怎么可能在沙箱中实现?我可以从我的 JavaScript 应用程序运行文件(比如test.py在桌面上)吗?

4

3 回答 3

15

这怎么可能在沙箱中实现?

我已将 Python 解释器移植到 WinRT 以实现这一目标。它现在不再使用 Win32 API,而是使用 WinRT API(特别是用于从用户的 Documents 文件夹中读取文件)。

我可以从我的 JavaScript 应用程序运行一个文件(比如桌面上的 test.py)吗?

原则上,是的。您需要从我的应用程序中获取 python33.dll,将其包装为 WinRT 组件,然后调用它。它实际上已经是一个 WinRT 组件,但不公开任何 Python API。看

http://hg.python.org/sandbox/loewis/file/ee9f8c546ddd/win8app/python33

于 2013-01-13T02:12:37.643 回答
1

基本上,您需要做的是根据 Metro 规则编写一个 C++“shell”应用程序,然后在该 C++ 应用程序中托管 Python 解释器。再次,清理 Python 代码库,使其在 Metro 沙箱中运行。

然后,您可以更进一步,让 C++ shell 将 WinRT 库公开给 Python 环境。可能有一种方法可以让 Python 公开 WinRT 对象,但这需要大量工作。

您将无法直接从 JavaScript 调用 Python - 您需要中间有一个 WinRT 组件。

这是很多工作,并且需要在 C 语言中进行一些相当低级的工作。

于 2013-01-11T19:48:00.430 回答
-2

你有两个选择:

  • 将 python.exe 添加到您的 PATH 中,然后在终端中输入包含您的 test.py 的文件夹并使用当前安装运行 python.exe test.py

  • 你可以按照这篇文章的第 1 步和第 2 步从头开始安装一个全新的 python

如果您能提供更多信息,我们可以为您提供更好的帮助。

我可以从我的 JavaScript 应用程序运行一个文件(比如桌面上的 test.py)吗?

这可能是您真正的问题,您对这句话的意思是什么?通常答案是“不,你不能”

于 2013-01-08T10:00:34.483 回答