2015-10-31 13 views
5

Ho iniziato a scrivere un'applicazione in Python, ma ora voglio passare a C# e UWP. So che non puoi scrivere un'app UWP in Python, ma sto cercando di capire se posso scrivere del codice in Python e accedere a quel codice da C#.Usa Python accanto a C# nell'app UWP di Windows

Ad esempio, scrivendo una classe in Python a cui può accedere anche il codice C#. È possibile? E se è così, Python può accedere alle API UWP di Microsoft?

Il codice principale non verrà scritto in Python; sarebbe impossibile. Ma può esistere l'interoperabilità tra C# e Python, forse con IronPython (Python di .NET)?

E come impostare un tale progetto di Visual Studio? Ho installato Python Tools per Visual Studio, ma non c'era alcuna opzione incorporata per aggiungere un file Python alla mia app UWP.

+0

C'è un grande [articolo sull'integrazione di un interprete Lua in UWP] (http://blogs.u2u.be/diederik/post/2015/10/29/Extend-your-UWP-apps-with-Lua- scripting.aspx) - forse questo può essere fatto anche usando IronPython? – sibbl

risposta

3

Gli interpreti di python "classico" in C# (come IronPython) non funzionano nelle app del negozio a causa di restrizioni di struttura, quando si esegue l'app attraverso una sandbox.

Un tizio ha portato l'intero interprete Python a WinRT on mercurial. Naturalmente, a causa delle restrizioni del framework, l'intera libreria standard non è disponibile. Funziona con WinRT, quindi molto probabilmente funzionerà su UWP.

+0

Grazie. C'è un modo per eseguire un file .exe in UWP? Ho copiato ipy.exe e gli altri file nella sua directory nel mio progetto e ora sto cercando di usare C# per eseguirlo. – M3579

+0

No, a causa del sandboxing, l'esecuzione di un eseguibile incorporato o esterno è assolutamente impossibile. È necessario aggiungere le DLL come librerie condivise – Lovy

+0

Per eseguire i file .exe che svolgono alcune attività specifiche per le mie app UWP, ho fatto ricorso a inserirli in Azure e a eseguirli dietro un'API RESTful. Funziona piuttosto bene. La tua app effettua una chiamata REST al tuo server che esegue il file .exe con qualsiasi parametro inserito nella chiamata REST. Sputa il risultato e il server lo rimanda. –