2009-08-05 10 views
17

Esiste un modo per eseguire il codice Python in un browser, oltre all'uso di Jython e di un'applet?Esegui il codice Python all'interno del browser senza Jython

L'esecuzione non deve occuparsi di nulla relativo alla grafica. Ad esempio, sommare tutte le cifre di un file binario da 1 Gb (scelto dall'utente del browser) e quindi restituire il risultato al server.

Sono consapevole del fatto che python can be executed remotely all'esterno di un browser, ma il mio requisito deve essere fatto all'interno di un browser.

Di sicuro, dò per scontato che l'utente manterrà il diritto di eseguire o meno, e verrà chiesto di farlo, e tutte queste cose di sicurezza ... ma questa non è la mia domanda.

+0

Suppongo che un'installazione locale di python sia sul lato client. – proportional

+0

Devi installare le estensioni Python Win32 sul client e sarai in grado di usare Python nello stesso modo in cui usi VBScript e JScript. – voyager

+0

Posso chiederti cosa stai cercando? Perché deve eseguire client side su un browser? Potrebbe essere necessario un altro strumento. O un'applicazione client/script o codice lato server. – voyager

risposta

9

Il progetto Pyjamas ha un compilatore chiamato pyjs che trasforma il codice Python in Javascript.

+0

Guarda il commento di proporzionale nella mia risposta. – voyager

+0

Sì, si sarebbe imbattuto nel problema della sandbox. –

3

No, non è possibile.

I browser moderni eseguono solo javascript o plug-in. Puoi sviluppare il tuo plugin python e convincere le persone a scaricarlo ed eseguirlo, ma suppongo che cada nella categoria "non all'interno del browser".

+0

Silverlight, Flash, Java (Jython) sono tutti plug-in - il browser * NON esegue * python. – nosklo

+0

Potrebbe rientrare nella categoria "browser interno" per me se esiste un tale plugin che il browser può avviare. – proportional

+0

puoi scrivere un plugin per eseguire python. convincere l'utente a installarlo è un'altra questione. – nosklo

3

Intendi lato client?

Sure you can! Ma prima è necessario aver installato python sul client.

Il libro collegato descrive che per utilizzare Active Scripting lato client, è possibile testarlo con un semplice file html.

<html><body> 
<script language='Python'>alert("Hello, Python!")</script> 
</body></html> 

Nella vecchia versione refered in quel libro (programmazione Python su Win32 di Mark Hammond, Andy Robinson) si dice che è necessario installare il Python Win32 extensions, che verrà automaticamente registrato Python script attivo. Se lo fai manualmente, devi eseguire lo script python\win32comext\axscript\client\pyscript.py.

+0

Non conosco lo stato per FF, e non posso testare come faccio a soffiare la mia Windows VM: S – voyager

+0

Buona prova, ma nella pagina 438 del tuo riferimento dice che IE non permetterà a python aprire nè ai file locali nè socket. Mi chiedo che cosa succede con altri browser non nella parte di Redmond. – proportional

+0

Sei corretto, sarai in modalità sandbox, proprio come con 'JScript' e' VBScript'. Puoi usarlo come sostituto di 'javascript', ma non penso che ne valga la pena. Devi ancora usare il tuo server per operazioni di basso livello (file, socket, ecc.). Posso chiederti cosa stai cercando? Perché deve eseguire 'client side' su un browser? Potrebbe essere necessario un altro strumento. O uno script/applicazione client o un codice 'lato server'. – voyager

2

Per caso stavo ascoltando Hanselminutes dove ha menzionato il progetto Gestalt. Questa è una soluzione per integrare un linguaggio come IronRuby e IronPython nel browser tramite Silverlight.

Quindi penso che la risposta sia no se non si dispone di alcun plugin speciale.

6

La risposta di nosklo è errata: pyxpcomext per firefox aggiunge il supporto language = "python" ai tag di script. Sì, è un plug-in da 10 MB, ma questa è la vita. Penso che sia meglio se ti riferisci a http://wiki.python.org/moin/WebBrowserProgramming perché è qui che sono registrati tutti i collegamenti documentati noti tra Python e la tecnologia del browser web: puoi scegliere, lì.

3

http://repl.it/ - Interprete Python in JavaScript in esecuzione sul lato client. Ci sono anche molte altre lingue. La fonte è disponibile sotto licenza MIT, che è fantastica.

4

Durante i miei viaggi, mi sono imbattuto in Skulpt, un progetto che sembra offrire Python direttamente nel browser senza plug-in. È concesso in licenza con il MIT.

Skulpt Homepage

Skulpt @ Github

3

È ora possibile (2016) utilizzare anche:

http://www.transcrypt.org

Compila Python 3.6 (incl. ereditarietà multipla, overloading dell'operatore, tutti i tipi di comprensione, generatori & iterators) per snellire e velocizzare JS, supporta il debug del livello sorgente con sourcemaps e typechecking statico opzionale usando mypy.

Disclaimer: Sono l'iniziatore del progetto.

Problemi correlati