2009-08-05 5 views
17

Czy istnieje sposób wykonywania kodu Pythona w przeglądarce, innych niż przy użyciu Jython i apletu?Wykonywanie kodu Pythona wewnątrz przeglądarki bez Jython

Wykonanie nie musi zajmować się czymkolwiek związanym z grafiką. Na przykład, po prostu zsumuj wszystkie cyfry binarnego pliku 1 GB (wybranego przez użytkownika przeglądarki), a następnie zwróć wynik na serwer.

Jestem świadomy, że python can be executed remotely poza przeglądarką, ale moje wymagania należy wykonać w przeglądarce.

Na pewno uważam, że użytkownik zachowuje prawo do wykonania, czy nie, i zostanie o to poproszony, a także wszystkie te zabezpieczenia ... ale to nie jest moje pytanie.

+0

Zakładam, że lokalna instalacja Pythona jest po stronie klienta. – proportional

+0

Musisz zainstalować rozszerzenia Python Win32 na kliencie i będziesz mógł używać Pythona w ten sam sposób, w jaki używasz VBScript i JScript. – voyager

+0

Czy mogę zapytać, czego szukasz? Dlaczego musi działać po stronie klienta w przeglądarce? Może potrzebujesz innego narzędzia. Zarówno aplikacja klienta/skrypt lub kod po stronie serwera. – voyager

Odpowiedz

9

Projekt Pyjamas ma kompilator o nazwie pyjs, który zamienia kod Pythona na Javascript.

+0

Spójrz na komentarz proporcjonalności w mojej odpowiedzi. – voyager

+0

Tak, wpadł na problem piaskownicy. –

3

Nie, nie możesz.

Nowoczesne przeglądarki obsługują tylko javascript lub wtyczki. Możesz stworzyć własną wtyczkę Pythona i przekonać ludzi do pobrania i uruchomienia jej, ale przypuszczam, że należy do kategorii "nie wewnątrz przeglądarki".

+0

Silverlight, Flash, Java (Jython) to wszystkie wtyczki - przeglądarka * NIE * wykonuje Pythona. – nosklo

+0

Może to należeć do kategorii "wewnątrz przeglądarki", jeśli istnieje taka wtyczka, którą może uruchomić przeglądarka. – proportional

+0

można napisać wtyczkę do uruchomienia Pythona. przekonanie użytkownika do zainstalowania go to inna sprawa. – nosklo

3

Masz na myśli stronę klienta?

Sure you can! Ale musisz najpierw zainstalować Pythona na kliencie.

Połączona książka opisuje, że w celu używania aktywnych skryptów po stronie klienta można przetestować go za pomocą prostego pliku html.

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

W starej wersji zwaną w tej książce (programowanie Pythona na Win32 Mark Hammond, Andy Robinson) mówi, że trzeba zainstalować Python Win32 extensions, a zostanie ona automatycznie zarejestrować Pythona aktywnych skryptów. Jeśli robisz to ręcznie, musisz uruchomić skrypt python\win32comext\axscript\client\pyscript.py.

+0

Nie wiem status dla FF i nie mogę przetestować, jak wysadzić moją maszynę Windows VM: S – voyager

+0

Dobra próba, ale na stronie 438 twojego odnośnika jest napisane, że IE nie pozwoli na otwarcie Pythona, ani na lokalne pliki ani gniazd. Zastanawiam się, co dzieje się z innymi przeglądarkami nie w Redmond. – proportional

+0

Masz rację, zostaniesz piaskowany, tak jak w 'JScript' i' VBScript'. Możesz użyć go jako zamiennika 'javascript', ale nie sądzę, że warto. Nadal musisz używać swojego serwera do operacji niskiego poziomu (plików, gniazd itp.). Czy mogę zapytać, czego szukasz? Dlaczego ma działać po stronie klienta w przeglądarce? Może potrzebujesz innego narzędzia. Zarówno aplikacja klienta/skrypt lub kod po stronie serwera. – voyager

2

Przez przypadek słuchałem Hanselminutes, gdzie wspomniał o projekcie Gestalt. Jest to rozwiązanie umożliwiające integrację języków takich jak IronRuby i IronPython w przeglądarce za pośrednictwem Silverlight.

Więc myślę, że odpowiedź brzmi nie, jeśli nie masz żadnych specjalnych wtyczek.

6

Odpowiedź nosklo jest błędna: pyxpcomext dla firefox dodaje obsługę języka = "python" do znaczników skryptów. tak, to potężna wtyczka o pojemności 10 MB, ale takie jest życie. Myślę, że najlepiej będzie, jeśli odwołasz się do http://wiki.python.org/moin/WebBrowserProgramming, ponieważ tam zapisywane są wszystkie znane udokumentowane linki między pythonem i technologią przeglądarki internetowej: możesz tam wybrać.

3

http://repl.it/ - Interpreter języka Python w języku JavaScript działającym po stronie klienta. Istnieje również wiele innych języków. Źródło jest dostępne na licencji MIT, co jest niesamowite.

4

Podczas moich podróży natrafiłem na Skulpt, projekt, który wydaje się oferować Python bezpośrednio w przeglądarce bez wtyczek. Jest licencjonowany w ramach MIT.

Skulpt Homepage

Skulpt @ Github

3

Teraz może (2016) również użyć:

http://www.transcrypt.org

To kompiluje Pythona 3,6 (wew. dziedziczenie wielokrotne, przeciążanie operatorów, wszystkie typy interpretacji, generatory &), aby wspierać i przyspieszyć JS, wspiera debugowanie poziomu źródłowego za pomocą sourcemaps i opcjonalne statyczne sprawdzanie typu za pomocą mypy.

Nota prawna: Jestem inicjatorem projektu.