9

Die Windows Store-App Python 3 For Metro behauptet, dass Benutzer Python-Dateien bearbeiten und ausführen können (ich kann es nicht zum Laufen bringen). Wie ist das in der Sandbox möglich? Kann ich eine Datei (z. B. test.py auf dem Desktop) von meiner JavaScript-App aus ausführen?Python in Windows Store-Apps

+0

Sie meinen, [diese one] (http://apps.microsoft.com/windows/en-us/app/python-3-for-metro/82f0c953-93d4-461c-893f- c298b0d919d2)? Wenn nicht, bitte einen Link angeben. – poke

+0

Ja, das ist die App, von der ich gesprochen habe. Danke für den Link. –

Antwort

15

Wie ist das möglich aus der Sandbox?

Ich habe den Python-Interpreter zu WinRT portiert das zu erreichen. Anstatt die Win32-API zu verwenden, wird jetzt die WinRT-API verwendet (insbesondere zum Lesen von Dateien aus dem Ordner "Dokumente" des Benutzers).

Kann ich eine Datei (z. B. test.py auf dem Desktop) von meiner JavaScript-App aus ausführen?

Im Prinzip ja. Sie müssen die python33.dll aus meiner App nehmen, sie als WinRT-Komponente umschließen und dann aufrufen. Es ist bereits eine WinRT-Komponente, stellt jedoch keine Python-API zur Verfügung. Siehe

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

-2

Sie haben zwei Möglichkeiten:

  • add python.exe zu Ihrem PATH und aus einer Terminal, geben Sie den Ordner, der Ihre test.py enthält und python.exe test.py laufen, mit Ihrem aktuelle Installation

  • können Sie Schritt 1 und Schritt 2 von this post folgen und eine brandneue python von Grund auf neu

installieren Wenn Sie mehr informa liefern Wir können Ihnen besser helfen.

Kann ich eine Datei (z. B. test.py auf dem Desktop) von meiner JavaScript-App aus ausführen?

Das kann dein echtes Problem sein, was meinst du mit dieser Aussage? Im Allgemeinen wäre die Antwort "nein, du kannst nicht"

+0

Ich habe kein Problem beim Ausführen von Python-Dateien vom Desktop. Ich bin ein Python-Entwickler. Ich möchte Python-Dateien aus einer Metro-App aufrufen. Ich dachte zuerst, das wäre unmöglich, aber "Python 3 For Metro" macht es irgendwie. –

1

Im Grunde müssen Sie eine C++ "Shell" -App gemäß den Metro-Regeln schreiben und dann den Python-Interpreter in dieser C++ - App hosten. Scrubben Sie die Python-Codebasis erneut so, dass sie in der Metro-Sandbox ausgeführt wird.

Sie können dann einen Schritt weiter gehen und die C++ - Shell WinRT-Bibliotheken für die Python-Umgebung verfügbar machen. Es gibt wahrscheinlich eine Möglichkeit, Python dazu zu bringen, WinRT-Objekte zu entlarven, aber das wäre eine Menge Arbeit.

Sie können nicht direkt von JavaScript in Python aufrufen - Sie benötigen eine WinRT-Komponente in der Mitte.

Das ist eine Menge Arbeit, und erfordert einige ziemlich niedrigen Niveau Arbeit in C.