Chociaż samo uruchomienie Pythona w przeglądarce nie jest nowością, to jednak PyScript wydaje się rewolucją na miarę naszych możliwości. Podczas PyCon 2022 w USA programiści związani z grupą project Anaconda ogłosili ukończenie prac nad nowym frameworkiem – PyScript. Jak mówią jego twórcy – to kolejny krok stronę zwiększenia dostępności Pythona dla wszystkich, którzy jej potrzebują. To ważny krok dla Pythona, ponieważ dostępność w przeglądarce lub za pomocą urządzenia mobilnego była jego słabym punktem.
PyScript to krok w stronę udowodnienia, że wbrew temu, co się zarzuca Pythonowi, czyli mocny skręt w stronę Data Science, niekoniecznie jest priorytetem jego twórców. I oprócz tej ścieżki, Python może być wykorzystywany jako ogólnodostępny język programowania, który dzięki PyScript stanie się przyjazny dla przeglądarek, a co za tym idzie, dostępny dla milionów użytkowników.
- Czym jest PyScript?
- Jakie możliwości kryje w sobie PyScript?
- Motywacja twórców PyScript
- Dobrze wyciągnięte wnioski z przeszłości
- Jak skorzystać z wersji testowej PyScript?
- Podstawowe operacje, które wykonasz przy pomocy PyScript
- Dołączanie etykiet do opisanych elementów
- Uruchomienie REPL w przeglądarce
- Importowanie plików, modułów i bibliotek
- Przyszłość PyScript
Czym jest PyScript?
To nowy framework Pythona, którego założeniem jest umożliwienie użytkownikom przeglądarek internetowych tworzenie rozbudowanych aplikacji w tym języku programowania. Powstał dzięki wykorzystaniu Emscripten, Pyodide, WASM i nowoczesnych technologii internetowych, by zapewnić łatwiejszy dostęp do nauki języka oraz:
- zapewnienie prostego i czytelnego interfejsu API;
- zapewnienie systemu rozszerzalnych i wtykowych komponentów;
- wsparcie i rozszerzenie języka HTML w ramach założeń projektu „Programowanie dla 99%”, który kładzie nacisk na powszechną dostępność Pythona dla każdego.
Jakie możliwości kryje w sobie PyScript?
Poznaj kilka możliwości, dzięki którym nauka i dostęp do wybranych funkcji Pythona z PyScript będzie prostsze niż kiedykolwiek:
Python w przeglądarce pozwoli na łatwe włączenie wstawiania dowolnej zawartości, umożliwi hosting zewnętrznych plików oraz hosting aplikacji bez konieczności polegania na konfiguracji po stronie serwera;
- Dostęp do ekosystemu Pythona, czyli uruchom biblioteki z poziomu przeglądarki – NumPy, Pandas, SciKit Learn;
- Dwukierunkowa komunikacja Pythona i JavaScript – twórcy PyScript nie oczekują, że Python zastąpi JS w przeglądarce, traktują go raczej jako większe możliwości i szersze spektrum funkcjonalności dla analityków danych (Data Science);
- PyScript zezwala użytkownikom na zdefiniowanie wyboru plików i pakietów, koniecznych dla uruchomienia konkretnej strony;
- PyScript umożliwia łatwe tworzenie czytelnych aplikacji wizualnych dzięki ogólnodostępnemu interfejsowi użytkownika, który zawiera przyciski, kontenery, pola tekstowe itd.;
- PyScript jest elastyczny, dzięki czemu można w nim tworzyć nowe wtykowe i rozszerzalne komponenty w Pythonie.
PyScript nie ma także na celu zastąpienia HTML. Jest raczej jego rozszerzeniem i boosterem. Dzięki wbudowanej integracji z bibliotekami Pythona. Dzięki takiemu rozwiązaniu dostęp do Pythona i jego bibliotek będzie łatwiejszy niż kiedykolwiek! Czy kiedykolwiek myślałeś, że będziesz mógł napisać stronę internetową w Pythonie? Z PyScript to nowa rzeczywistość, która dzieje się na Twoich oczach.
Motywacja twórców PyScript
Jaka była główna motywacja twórców frameworka PyScript? Dostępność. Mimo zaawansowanych możliwości edukacyjnych, jakie daje dostęp do sieci, wciąż nie każdy mógł łatwo korzystać z dowolnego języka programowania na swoim sprzęcie, bez instalowania dodatkowych komponentów. Główną misją programistów pracujących nad środowiskiem Pythona, jest zwiększenie jego dostępności wśród użytkowników Internetu na całym świecie.
Głównym założeniem było stworzenie stabilnej i niezawodnej platformy, która pozwoliłaby na łatwe i szybkie projektowanie aplikacji oraz ich wysyłanie na dowolną platformę sprzętową i programową, bez konieczności tworzenia nowego stosu technologicznego. Jak podkreślają twórcy, poszukiwanie tak funkcjonalnej platformy było dla nich sporym wyzwaniem.
Okazało się, że przeglądarka będzie świetną platformą, do której można było się ę dostosować, aby zapewnić niezawodne, dostępne i przyjemne doświadczenie dla użytkowników PyScript. Przeglądarka działa wszędzie (od laptopów, tabletów po telefony) i jest bezpieczna, wydajna i stabilna, co pozwala na dotarcie do szerokiego grona odbiorców, bez konieczności tworzenia odrębnej platformy. W rzeczywistości przeglądarka jest potężną machiną wirtualną, której możliwości dostrzegli właśnie twórcy nowego frameworka PyScript.
Dobrze wyciągnięte wnioski z przeszłości
Twórcy PyScript podkreślają również, że w ciągu kilku dekad języki programowania takie jak Python i Java Script oraz zaawansowane języki UI, takie jak nowoczesny HTML i CSS nie miały możliwości, by się wzajemnie uzupełniać. Python nie miał funkcji, które pozwoliłyby mu na tworzenie czytelnych interfejsów użytkownika do łatwego wdrażania aplikacji, a HTML, CSS i JS mają dobrą krzywą uczenia się. Umożliwienie Pythonowi wykorzystania konwencji HTML, CSS i JavaScript nie tylko rozwiązuje te dwa wyzwania, ale także rozwiązuje ogólne wyzwania związane z tworzeniem, pakowaniem, dystrybucją i wdrażaniem aplikacji internetowych.
Podsumowując, choć projekt PyScript wciąż jest w testowej fazie, już teraz można pobawić się wyborem bibliotek obsługiwanych przez Pyodide, a w przyszłości kod Pythona będzie można uruchomić z dowolnego urządzenia w przeglądarce (o ile projekt PyScript pozytywnie zakończy fazę testów).
Jak skorzystać z wersji testowej PyScript?
W testowej wersji PyScript nie ma nic do zainstalowania. Musisz tylko dodać 2 zasoby do nagłówka HTML: plik JavaScript i CSS. Wersję alfa PyScript można znaleźć na pyscript.net.
Wersja alfa składa się z:
- py-env definiuje pakiety Pythona potrzebne do uruchomienia kodu Pythona;
- py-script to miejsce, w którym można napisać swój kod Pythona;
- py-repl tworzy składnik REPL (pętla odczytu, oceny i drukowania), który ocenia kod wprowadzony przez użytkowników i wyświetla wyniki.
Z pomocą PyScript jako narzędzia do analizy danych, można udostępniać dashboardy i modele w pliku html, który uruchomi kod za każdym razem, gdy inni otworzą ten plik w przeglądarce internetowej. Oczywiście, wersja alfa nie jest pozbawiona błędów. Niektórzy zwracają uwagę na problem bezpieczeństwa przesyłania danych, z jakim może się mierzyć PyScript. W wersji alfa można zaobserwować przeciążenie względem czasu wykonania podczas pracy na prostych skryptach. Nie wiadomo, czy praca na dużej ilości danych (kodu) będzie mogła być wydajna.
Podstawowe operacje, które wykonasz przy pomocy PyScript
Poniżej opisujemy kilka podstawowych operacji wraz z kodem, które możesz wykonać przy pomocy PyScript:
Dołączanie etykiet do opisanych elementów
Korzystając z PyScript, możesz przekazać zmienne z kodu Pythona do HTML. Zrobisz to za pomocą metody write z modułu PyScript w tagu
<pyscript>
. Używając atrybutu id, możesz przekazać ciągi wyświetlane jako zwykły tekst. Metoda write akceptuje dwie zmienne: wartość id oraz zmienną, która zostanie podana.
Przykład kodu:
<html>
<head>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
<body>
<b>Today is <u><label id='today'></label></u></b>
<py-script>
import datetime as dt
pyscript.write('today', dt.date.today().strftime('%A %B %d, %Y'))
</py-script>
</body>
</html>
Uruchomienie REPL w przeglądarce
PyScript zapewnia interfejs do uruchamiania kodu Pythona w przeglądarkach. Aby to zrobić, używa znacznika
Przykład kodu:
<html>
<head>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
<py-repl id="my-repl" auto-generate=true> </py-repl>
</html>
Importowanie plików, modułów i bibliotek
Jedną z funkcji zapewnianych przez PyScript jest elastyczność. W PyScript możesz importować lokalne pliki, wbudowane moduły lub biblioteki firm trzecich. Ten proces używa tagu
Dla lokalnych plików Pythona w twoim systemie możesz umieścić kod w pliku .py, a ścieżki do lokalnych modułów są podane w paths: klucz w tagu
Przykład kodu:
from random import randint
def add_two_numbers(x, y):
return x + y
def generate_random_number():
x = randint(0, 10)
return x
Następnie plik Python zostanie zaimportowany do HTML z tagiem
Przyszłość PyScript
PyScript jest ciekawym rozwiązaniem, które może ułatwić pracę z danymi w przyszłości i znacznie przyspieszyć procesy technologiczne związane z ich automatyczną analizą. PyScript obecnie dostępny w wersji testowej, ale istnieje duże prawdopodobieństwo, że będzie to przełom w dostępnie do języka programowania Python, na dużą skalę. Ze względu na ograniczenia związane z bezpieczeństwem, jak i czasem ładowania, PyScript jest obecnie źródłem dobrej zabawy, w trakcie której mogą pojawić się istotne problemy, które twórcy będą musieli rozwiązać w przyszłości.
Jest też wiele pozytywnych komentarzy po konferencji na PyCon 2022, które mówią o tym, że projekt okaże się ważnym technologicznym przełomem. Jak będzie w przyszłości? Przekonamy się już za kilka miesięcy. Tymczasem, życzymy Wam udanej zabawy w testowaniu wersji alfa.