Recenzja: 6 Python IDE przechodzi do mata

Ze wszystkich mierników, których można użyć do oceny popularności i sukcesu języka, jednym z pewnych czynników jest liczba dostępnych dla niego środowisk programistycznych. Rosnąca popularność Pythona w ciągu ostatnich kilku lat przyniosła ze sobą silną falę wsparcia dla IDE, z narzędziami skierowanymi zarówno do programistów ogólnych, jak i tych, którzy używają Pythona do zadań takich jak praca naukowa i programowanie analityczne.

Sześć środowisk IDE z obsługą języka Python obejmuje całą gamę przypadków użycia. Niektóre z nich to wielojęzyczne środowiska IDE, które obsługują język Python za pośrednictwem dodatku lub przepakowywania innego produktu z rozszerzeniami specyficznymi dla języka Python. Każdy z nich przynosi korzyści nieco innym odbiorcom programisty Pythona, chociaż wielu stara się być użytecznymi rozwiązaniami uniwersalnymi.

Wiele dzisiejszych IDE to frameworki wyposażone we wtyczki do określonych języków i zadań, a nie aplikacje napisane od wewnątrz w celu wspierania rozwoju w danym języku. W tym celu wybór IDE może być określony przez to, czy masz doświadczenie z innym IDE z tej samej rodziny.

Powiązany film: Dlaczego Python ułatwia programowanie

Dla tych, którzy nie mają takiego doświadczenia, PyCharm jest jednym z najlepszych miejsc do rozpoczęcia. Jest przyjazny dla nowicjuszy, ale nie ma ograniczeń w swoim zestawie funkcji. W rzeczywistości zawiera niektóre z najbardziej przydatnych funkcji spośród wszystkich przedstawionych tutaj IDE. Wiele z tych funkcji jest dostępnych tylko w płatnej wersji produktu, ale w wersji bezpłatnej jest wiele, które pomogą początkującym programistom zacząć.

LiClipse i Python Tools for Visual Studio (PTVS) to dobry wybór dla programistów już dobrze zaznajomionych z Eclipse i Microsoft Visual Studio. Oba są pełnowymiarowymi środowiskami programistycznymi - tak pełnowartościowymi, jak się przekonasz - które całkiem dobrze integrują Pythona. Są to jednak również rozległe, złożone aplikacje, które wiążą się z dużym obciążeniem poznawczym. Jeśli opanowałeś już którykolwiek z nich, okaże się, że jest to doskonały wybór do pracy w Pythonie.

Wcielenie Pythona w Komodo IDE ActiveState jest naturalne dla tych, którzy już używali IDE Komodo w innym języku i ma unikalne funkcje (takie jak ewaluator wyrażeń regularnych), które powinny zwiększyć jego atrakcyjność. Komodo zasługuje na bliższe przyjrzenie się zarówno nowicjuszom, jak i ekspertom.

Spyder najlepiej nadaje się do pracy z IPythonem lub innymi narzędziami do obliczeń naukowych w dystrybucjach takich jak Anaconda, a nie ogólnie jako platforma programistyczna dla Pythona. Wreszcie, IDLE jest najlepiej zarezerwowane dla szybkich i brudnych skryptów, a nawet w tym przypadku może zająć tylne miejsce do samodzielnego edytora kodu z wtyczką składni Pythona. To powiedziawszy, IDLE jest zawsze tam, gdzie go potrzebujesz.

BEZCZYNNY

IDLE, środowisko programistyczne dołączane do większości instalacji Pythona, można uznać za domyślne IDE Pythona. Jednak IDLE w żadnym wypadku nie zastępuje pełnowartościowego IDE; bardziej przypomina fantazyjny edytor plików. Mimo to IDLE pozostaje jedną z domyślnych opcji dla programistów Pythona, aby uzyskać przewagę nad językiem, i poprawia się stopniowo z każdym wydaniem Pythona, szczególnie z Pythonem 3.5. (Zobacz tę stronę, aby zapoznać się z interesującą dyskusją na temat ostatnich wysiłków w celu ulepszenia IDLE.)

IDLE jest zbudowany w całości z komponentów, które są dostarczane z domyślną instalacją Pythona. Oprócz samego interpretera CPython obejmuje to zestaw narzędzi interfejsu Tkinter. Jedna korzyść z budowania IDLE w ten sposób: działa na wielu platformach ze spójnym zestawem zachowań. Wadą interfejsu może być strasznie wolno. Na przykład drukowanie dużej ilości tekstu ze skryptu na konsoli jest o wiele rzędów wielkości wolniejsze niż w przypadku uruchamiania skryptu bezpośrednio z wiersza poleceń.

IDLE ma kilka bezpośrednich udogodnień. Posiada wbudowaną pętlę odczytu i wydruku (REPL) lub interaktywną konsolę dla Pythona. W rzeczywistości ta interaktywna powłoka jest pierwszym elementem prezentowanym użytkownikowi po uruchomieniu IDLE, a nie pustym edytorem. IDLE zawiera również kilka narzędzi, które można znaleźć w innych IDE, takich jak dostarczanie sugestii słów kluczowych lub zmiennych po naciśnięciu Ctrl-Space oraz zintegrowany debugger. Jednak implementacje większości z tych funkcji są prymitywne w porównaniu z innymi IDE i są ograniczone przez ograniczony wybór komponentów interfejsu użytkownika Tkinter. A kolekcja dodatków innych firm dostępnych dla IDLE (jednym z takich projektów to IdleX) nie jest tak bogata, jak w przypadku innych IDE.

Podsumowując, IDLE jest najlepsze dla dwóch scenariuszy. Pierwszym jest, gdy chcesz zhakować szybki skrypt Pythona i potrzebujesz do tego wstępnie skonfigurowanego środowiska. Drugi jest dla początkujących, którzy dopiero zaczynają swoje nogi. Nawet początkujący będą musieli szybko przejść na bardziej niezawodną opcję.

Spyder

Spyder to skrót od „Scientific PYthon Development EnviRonment”. Jest przeznaczony do użytku jako środowisko pracy do obliczeń naukowych w Pythonie, co znajduje odzwierciedlenie w zestawie funkcji, opakowaniu i ogólnym zachowaniu IDE. Spyder ma przydatne funkcje do ogólnego programowania w Pythonie, ale jeśli nie pracujesz głównie z IPythonem i pakietami do obliczeń naukowych, prawdopodobnie lepiej będzie, jeśli masz inne IDE.

Największym powodem, aby nie używać Spydera jako środowiska programistycznego Pythona ogólnego przeznaczenia, nie jest zestaw funkcji, ale proces konfiguracji. Spyder nie jest dostarczany jako samodzielny plik wykonywalny w postaci produktu takiego jak Visual Studio czy PyCharm. Zamiast tego jest instalowany jako pakiet Pythona. Najłatwiejszą drogą do Spydera jest zainstalowanie wstępnie załadowanej dystrybucji Pythona, takiej jak Anaconda Continuum Analytics.

1. Dostępne jako rozszerzenie, ale obsługuje tylko sprawdzanie składni. 2. Dostępne jako dodatek Eclipse. 3. Dostępne w wersji komercyjnej. 4. Zobacz instrukcje integracji. 5. Używa systemów kontroli wersji zainstalowanych na hoście.
  BEZCZYNNY Komodo LiClipse PyCharm PTVS Spyder
Wsparcie Cython Nie Tak (1) Nie Tak (3) Nie Nie
Kontrola wersji Nie tak tak tak tak Tak (5)
Graficzny debugger Nie tak tak tak tak Nie
Obsługa IPythona Nie Nie Nie tak Tak (4) tak
Makra Nie tak Tak (2) Tak (2) tak Nie
Wielu tłumaczy Nie tak tak tak tak tak
Refaktoryzacja Nie tak tak tak tak Nie
Integracja z bazą danych Nie tak Tak (2) Tak (3) tak Nie
HTML / CSS / JavaScript Nie tak tak tak Tak (3) Nie

Spyder zawiera IPython, który jest zamiennikiem konwencjonalnej konsoli Pythona. Podczas wpisywania poleceń w IPython wyniki można przeglądać interaktywnie. Każde polecenie może być traktowane jako „komórka” lub segment kodu, którego dane wyjściowe mogą być przechowywane i sortowane.

Spyder uzupełnia to, integrując zachowania komórek ze swoim edytorem kodu. Jeśli wstawisz specjalnie sformatowane komentarze do dowolnego skryptu Pythona, możesz podzielić go na komórki i wykonać te komórki w interfejsie IPython w dowolnej kolejności. W ten sposób Spyder jest łatwy w użyciu do prototypowania komórek do późniejszego umieszczenia w notatniku IPython.

Do debugowania Spyder używa wbudowanego w Pythona debuggera Pdb. Interfejs wiersza poleceń dla Pdb jest daleki od bardziej wyrafinowanych graficznych debuggerów znalezionych w PyCharm lub LiClipse, chociaż możesz zainstalować graficzny debugger Winpdb jako opcjonalny dodatek. Niestety, nie można używać Winpdb z Pythonem 3, ponieważ ma zależności od pakietów, które są nadal dostępne tylko w Pythonie 2 (w szczególności wxPython). W tym celu większość ludzi będzie skazana na Pdb.

Spyder jest również ograniczony w porównaniu z innymi IDE w integracji z systemami kontroli wersji, takimi jak Git i Mercurial. Jeśli pracujesz w zainicjowanym repozytorium projektu, pliki w tym projekcie będą wyświetlać elementy menu kontekstowego dostępne po kliknięciu prawym przyciskiem myszy dla repozytorium. To powiedziawszy, nie ma mechanizmów kontroli wersji wbudowanych bezpośrednio w Spyder; musisz mieć już zainstalowaną odpowiednią aplikację kontroli wersji na poziomie systemu, a jej pliki wykonywalne są dostępne ze ścieżki systemowej. Spyder nie zawiera również narzędzi do zarządzania repozytoriami w swoim interfejsie użytkownika. Te niedociągnięcia nie są takie złe, jeśli masz już nawyk samodzielnego zarządzania repozytoriami, ale stanowią dodatkowe przeszkody, jeśli nie jesteś.

Spyder ma przydatne funkcje do ogólnego programowania w Pythonie. Jeden, który natychmiast przykuł moją uwagę, to zmienny panel eksploratora w interfejsie Spydera. Podczas wpisywania poleceń w IPython wszelkie utworzone zmienne są tam rejestrowane i można je przeglądać interaktywnie. Innym przydatnym narzędziem jest narzędzie do usuwania modułów użytkownika. Włącz ją, a interpreter Pythona przeładuje wszystkie moduły od zera, gdy wykona skrypt Pythona. W ten sposób wszelkie zmiany wprowadzone w kodzie modułu można zastosować do uruchomionego programu bez konieczności ponownego uruchamiania całej aplikacji.

ActiveState Komodo IDE

Linia produktów IDE ActiveState obejmuje wersje dla prawie każdego głównego języka. Podejście firmy do tego jest trochę podobne do tego, jak działa LiClipse: weź podstawowy produkt (w tym przypadku Komodo IDE) i wyposaż go w dodatki do programowania w Pythonie.

Komodo najlepiej nadaje się dla tych, którzy są już zaznajomieni z inkarnacjami Komodo w innych językach. Osoby z takim doświadczeniem nie będą miały problemu z zanurzeniem się w produkcie Python. Jeśli jesteś przeziębiony, warto zwrócić uwagę na pewne dziwactwa interfejsu użytkownika. Na przykład pasek menu aplikacji nie jest domyślnie widoczny; musisz kliknąć menu hamburgera w prawym górnym rogu lub nacisnąć klawisz Alt, aby je wyświetlić. Ma to na celu zachowanie czystości i prostoty, ale może być zbyt minimalistyczne dla niektórych gustów.

Z drugiej strony, niektóre opcje interfejsu są od razu atrakcyjne. Szczególnie podobała mi się „minimapa”, powiększony podgląd kodu w edytorze, który pozwala szybko przeskoczyć do dowolnej części edytowanego pliku. LiClipse ma podobną funkcję, ale implementacja Komodo jest łatwiejsza w obsłudze.

Większość środowisk IDE Pythona jest wyposażona w funkcje takie jak sprawdzanie składni specyficzne dla języka Python lub linting kodu. Komodo IDE ma to wszystko, ale zostało również zaprojektowane do obsługi wersji 2 i 3 języka w tym samym czasie. Jeśli na przykład chcesz uruchomić powłokę Pythona i masz interpretery dla obu wersji Pythona dostępne w ścieżce systemowej, możesz jawnie wybrać dowolną wersję. Często musiałem przeprowadzać szybkie testy zachowania danej instrukcji w Pythonie 2 i Pythonie 3 obok siebie, a jest to wygodny sposób.

Komodo zapewnia opcję zastosowania wielu konfiguracji uruchamiania lub debugowania dla aplikacji, ale jest nieco mniej elastyczna niż podobna funkcja w LiClipse. Po uruchomieniu aplikacji masz wybór profili, które możesz zastosować w programie. Możesz wyłączyć selektor profili i od razu przejść do uruchamiania profilu, ale wyłączenie można wykonać tylko dla całej aplikacji, a nie dla konkretnego projektu. Preferuję menu rozwijane paska narzędzi LiClipse, z którego jednym kliknięciem można wybrać dany profil lub uruchomić ostatnio używany profil.

Jednym z naprawdę wspaniałych elementów jest zestaw narzędzi do wyrażeń regularnych. Wpisz wyrażenie regularne w jednym okienku tego narzędzia, w drugim podaj przykładowe dane do zastosowania, a wyniki pojawią się w trzecim. Narzędzie obsługuje również wiele odmian wyrażeń regularnych, w tym język Python, a nawet pokazuje wyniki operacji dopasowania, podziału i zamiany. Cały czas zmagam się z tworzeniem działających regexów, więc to narzędzie jest darem niebios.

Inną przydatną funkcją gotową do użycia jest katalog wspólnych fragmentów kodu dla Pythona. Na przykład kliknij „spacer”, a edytor wstawia standardowy kod, aby użyć os.walkfunkcji Pythona do przechodzenia po katalogach, jednej z funkcji, której składni i użycia nigdy nie pamiętam od ręki. Uwzględniono również inne języki. Na przykład, jeśli chcesz wrzucić standardowy kod HTML do szablonu Django, który przygotowujesz, Komodo ma to wszystko.

Domyślna dystrybucja Pythona zapewnia obsługę SQLite po wyjęciu z pudełka. Komodo IDE uzupełnia to, udostępniając wbudowany eksplorator baz danych SQLite. To coś w rodzaju okrojonej wersji aplikacji desktopowych typu „workbench” dostarczanych dla MySQL lub Microsoft SQL Server. Interfejs jest niezgrabny i nieatrakcyjny, ale doskonale nadaje się do szybkiej kontroli lub punktowej edycji bazy danych. Nie ma służyć jako pełnowartościowe IDE bazy danych.

W Komodo znajdziesz wiele innych przydatnych funkcji, nawet jeśli nie są one specjalnie przeznaczone dla Pythona. Rejestrator makr umożliwia nagrywanie i odtwarzanie typowych działań, chociaż wydaje się, że nie rejestruje niektórych typów działań, takich jak wybór profilu aplikacji do użycia podczas uruchamiania aplikacji. Inna funkcja umożliwia współpracę w czasie rzeczywistym między użytkownikami Komodo, chociaż będą oni musieli zarejestrować konta w ActiveState, aby uzyskać dostęp do usługi.

LiClipse 

Eclipse IDE jest często krytykowane jako powolne i przeciążone, ale jego szeroka obsługa języków i galeria dodatków programistycznych sprawiają, że jest to potężne i cenne narzędzie. Python jest obsługiwany w Eclipse przez dodatek PyDev. Jeśli używasz Eclipse tylko do programowania w Pythonie, najlepszym rozwiązaniem jest pobranie LiClipse. (W tej recenzji będę używać LiClipse jako skrótu dla zestawu funkcji udostępnianych przez LiClipse i PyDev razem.)

LiClipse to przepakowanie Eclipse z PyDev, wraz z mnóstwem innych komponentów Eclipse, które mają poprawić wrażenia użytkownika. Po uruchomieniu LiClipse wygląda i zachowuje się podobnie jak zwykła edycja Eclipse, z wyjątkiem brandingu i ikon LiClipse, więc doświadczeni użytkownicy Eclipse nie powinni mieć większych problemów z konfiguracją przestrzeni roboczej według własnych upodobań. Jeśli nie doświadczył z Eclipse, trzeba będzie trochę czasu, aby nauczyć roboczy Eclipse działa (ten aspekt Eclipse jest rutynowo krytykowane). W tym sensie LiClipse jest najlepszy dla ludzi, którzy już czują się komfortowo z Eclipse, być może dzięki pracy w innym języku.

Karta z punktami Zdolność (30%) Wydajność (10%) Łatwość użytkowania (20%) Dokumentacja (20%) Dodatki (20%) Ogólny wynik (100%)
IDLE 3.5.1 6 7 8 7 5 6.5
Komodo IDE 10.1.1 8 8 7 8 8 7.8
LiClipse 3.1 9 7 7 8 9 8.2
PyCharm 2016.2.3 9 8 9 8 8 8.5
Spyder 3.0.0 7 7 7 7 6 6.8
Python Tools 2.2 dla programu Visual Studio 2015 9 8 7 9 9 8.5