9

L'app di Windows Store Python 3 For Metro afferma che consente agli utenti di modificare ed eseguire file Python (non riesco a farlo funzionare). Com'è possibile da dentro la sandbox? Posso eseguire un file (ad esempio test.py sul desktop) dalla mia app JavaScript?Python nelle app di Windows Store

+0

Vuoi dire che [questa] (http://apps.microsoft.com/windows/en-us/app/python-3-for-metro/82f0c953-93d4-461c-893f- c298b0d919d2)? In caso contrario, si prega di fornire un link. – poke

+0

Sì, questa è l'app di cui stavo parlando. Grazie per il link. –

risposta

15

Come è possibile all'interno della sandbox?

Ho portato l'interprete Python a WinRT per ottenere ciò. Invece di utilizzare l'API Win32, ora utilizza l'API WinRT (in particolare per la lettura dei file dalla cartella Documenti dell'utente).

Posso eseguire un file (ad esempio test.py sul desktop) dalla mia app JavaScript?

In linea di principio sì. Devi prendere python33.dll dalla mia app, includerlo come componente WinRT e quindi chiamarlo. In realtà è già un componente WinRT, ma non espone alcuna API Python. Vedere

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

-2

si hanno due opzioni:

  • add python.exe al PATH e, dall'interno di un terminale, entrare nella cartella che contiene il test.py ed eseguire test.py python.exe, utilizzando il vostro installazione corrente

  • è possibile seguire step1 e step2 di this post e installare un nuovo pitone da zero

Se è possibile fornire un po 'di Informa ti possiamo aiutare meglio.

Posso eseguire un file (ad esempio test.py sul desktop) dalla mia app JavaScript?

Questo può essere il tuo vero problema, cosa intendi con questa affermazione? generalmente la risposta sarebbe "no, non è possibile"

+0

Non ho problemi a eseguire file python dal desktop. Sono uno sviluppatore Python. Quello che voglio fare è chiamare i file python da un'app Metro. Inizialmente pensavo che sarebbe stato impossibile, ma "Python 3 For Metro" lo sta facendo in qualche modo. –

1

In pratica, ciò che è necessario è scrivere un'app "shell" C++ secondo le regole Metro, quindi ospitare l'interprete Python all'interno dell'app C++. E ancora, scrub il codice Python in modo che funzioni all'interno della sandbox Metro.

È quindi possibile fare un ulteriore passo avanti e fare in modo che la shell C++ esponga le librerie WinRT all'ambiente Python. Probabilmente c'è un modo per far sì che Python esponga oggetti WinRT, ma questo sarebbe MOLTO lavoro.

Non sarà possibile chiamare direttamente da JavaScript in Python: sarà necessario un componente WinRT nel mezzo.

Si tratta di un sacco di lavoro, e richiede un certo lavoro piuttosto basso livello in C.

Problemi correlati