Windows商店应用Python 3 For Metro声称可以允许用户编辑和运行Python文件(但我无法使其工作)。在沙盒内如何实现这一点?我能否从JavaScript应用程序中运行桌面上的文件(例如
test.py
)?test.py
)?如何在沙盒内实现这个?
我将Python解释器移植到WinRT上,以此来实现。它不再使用Win32 API,而是使用WinRT API(特别是用于从用户文档文件夹中读取文件)。
我能否从我的JavaScript应用程序中运行桌面上的文件(例如test.py)?
原则上可以。您需要从我的应用程序中获取python33.dll,并将其包装为WinRT组件,然后调用它。它实际上已经是一个WinRT组件,但没有公开任何Python API。请参阅
http://hg.python.org/sandbox/loewis/file/ee9f8c546ddd/win8app/python33
基本上,您需要做的是根据Metro规则编写一个C++“shell”应用程序,然后在该C++应用程序中托管Python解释器。然后再清理Python代码库,使其在Metro沙盒内运行。
然后,您可以更进一步,让C++ shell向Python环境公开WinRT库。可能有一种方法可以让Python公开WinRT对象,但那将是很多工作。
您将无法直接从JavaScript调用Python - 您需要一个WinRT组件在中间。
这是很多工作,并且需要进行一些相当低级别的C工作。
您有两个选项:
将python.exe添加到您的PATH中,然后在终端内,进入包含test.py文件的文件夹,并使用您当前的安装运行 python.exe test.py
您可以按照this post的步骤1和步骤2,从头开始安装全新的Python
如果您能提供更多信息,我们可以更好地帮助您。
我能否从我的JavaScript应用程序中运行桌面上的文件(例如test.py)?
这可能是您真正面临的问题,您的意思是什么?通常的答案是“不行”。