Kiedy masz wreszcie motywację, aby usiąść do komputera i coś poprogramować, stajesz przed kolejnym wyborem. Tym razem wybór dotyczy programu środowiska Python, w którym będziesz tworzyć kod. W tym artykule przedstawię Ci subiektywną listę najlepszych środowisk do tworzenia kodu w Pythonie.
Przedstawię Ci sposób rozumowania, jakim sam kieruję się podczas wybierania edytora tekstu / IDE, a sam korzystam z wielu środowisk 🙂
Na wstępie jednak chciałbym zaprosić Cię do polubienia mojego fanpage na Facebooku 🙂
Jakich środowisku używam?
Podczas pracy korzystam z środowisk:
- PyCharm
- VS Code
- Sublime Text
- Jupyter
- VIM
- IDLE
Testowałem również:
- Notepad++
- Brackets
- Atom
Inne IDE:
- Spyder
- Thonny
Kryteria wyboru środowiska
Dobierając środowisko programistyczne do projektu kieruję się kilkoma kryteriami.
Głównym kryterium jest wielkość projektu. Do projektu Django, w którym trzeba kontrolować kilka plików wybiorę inne narzędzie, niż do prostego jednoplikowego skrytu.
Wybierając środowisko, biorę również pod uwagę zadanie, które mam w danej chwili do wykonania.
Jeżeli siadam do refaktoryzacji kodu to zdecydowanie wybieram programistyczne IDE, które w znacznie łatwiejszy sposób pomagają mi zapanować nad kodem.
Przejdźmy do omówienia środowisk 🙂
PyCharm
Najpopularniejsze IDE do Pythona stworzone przez firmę JetBrains.
Narzędzie dystrybuowane jest zarówno w wersji Community (darmowa wersja Open Source) jak i w wersji Professional (płatnej).
PyCharm jest najbardziej zaawansowanym IDE w Pythonie. Posiada wiele narzędzi do refaktoryzacji kodu, graficzny debugger, narzędzie do uruchamiania testów, podpowiedzi składni, kontrole typów.
IDE wspiera również gita, czyli najpopularniejsze narzędzie do kontroli wersji. Z poziomu PyCharma programista może również uruchamiać kod.
Za pomocą lintera podkreśla nam również błędy i niezgodności z PEP 8 oraz pozwala automatycznie sformatować kod.Płatna wersja PyCharma posiada również wsparcie dla web developmentu w Django i Flasku, profiler czy narzędzia bazodanowe.
PyCharm pozwala również na stosunkowo proste zarządzanie środowiskami wirtualnymi. Istnieje również wiele wtyczek i rozszerzeń, które potrafią bardzo ułatwić pracę z kodem.
PyCharm zdecydowanie można nazwać takim IDE „kombajnem”.
Kiedy warto używać PyCharma?
PyCharm zdecydowanie najlepiej nadaje się do dużych projektów, np. projektów w Django.
W łatwy i szybki sposób możemy refaktoryzować kod znajdujący się w wielu plikach, korzystać z podpowiedzi składni.
VS Code
Visual Studio Code to lekkie IDE stworzone przez Microsoft.
Największą siłą narzędzia są rozszerzenia, które pozwalają dostosować IDE do praktycznie każdego języka.
W przypadku samego Pythona szczególnie polecam Ci rozszerzenia:
- Python – główne rozszerzenie do pisania kodu w Pythonie.
- Kite Python – narzędzie do podpowiadania składni i dokumentacji.
Razem z rozszerzeniami VS Code to narzędzie, które dobrze sprawdza się w refaktoryzacji, posiada podpowiedzi składni, narzędzie do debugowania oraz wbudowaną integrację z gitem.
Oczywiście IDE możemy dostosowywać pod siebie, dodając rozszerzenia ułatwiające np. pracę z Dockerem czy markdownem.
Kod Pythona możemy uruchamiać z poziomu IDE.
Kiedy warto używać VS Code?
Dla mnie szczególnie dobrze sprawdza się w przypadku średniej wielkości projektów programistycznych, oraz projektów, w których wykorzystuje się różne technologie i języki.
Jest to znacznie „lżejsze” IDE niż PyCharm, jednak bardzo często będzie zupełnie wystarczającym, szczególnie jeżeli nie dysponujemy płatną wersją PyCharma.
Sublime Text
Sublime Text to jeden z najpopularniejszych edytorów tekstu. Jest to znacznie mniej zaawansowane narzędzie niż PyCharm i VS Code.
Jako że jest to jedynie edytor tekstu, a nie IDE jesteśmy pozbawieni narzędzi do refaktoryzacji kodu.
Możemy jednak korzystać z całkiem zaawansowanych narzędzi do edycji tekstu, jak na przykład kilku kursorów, pozwalającym nam zmieniać tekst w wielu miejscach.
Z punktu widzenia ważną funkcją edytora jest możliwość zamiany tabulatora na spacje.
Narzędzie możemy pobrać bezpłatnie, jednak w przypadku dłuższego używania będziemy proszeni o kupno licencji, jednak nawet wtedy z narzędzia da się korzystać.
Sublime pozwala na dopasowanie edytora pod siebie. Można również rozszerzyć go między innymi o automatyczne podkreślenia błędów składniowych, jednak sam nie korzystałem z tego rozwiązania.
Nawet tutaj kod Pythona możemy uruchamiać z poziomu programu 🙂
Kiedy warto używać Sublime Text?
U mnie Sublime najlepiej sprawdza się do prostych projektów niewielkich rozmiarów, szczególnie w przypadku szybkich skryptów, które nie wymagają długiego utrzymywania i rozszerzenia.
Drugim zastosowaniem jest po prostu szybka edycja jakiegoś fragmentu kodu w projekcie. Edytor włącza się bardzo szybko i zapamiętuje otwarte pliki, co w tym wypadku jest całkiem przydatne.
Jupyter
Jupyter to środowisko programistyczne przeznaczone szczególnie do pracy z danymi.
Na projekt Jupyter składają się takie narzędzia jak Jupyter Notebook i JupyterLab.
Jupyter Notebook to narzędzie służące do tworzenia i wykonywania kodu zebranego w bloki. Wynik wykonania bloku zostaje zapisany zaraz pod nim, co bardzo ułatwia pracę na przykład z wieloma wykresami.
Z tak stworzonego notebooka można w prosty sposób wygenerować atrakcyjny graficznie PDF czy plik HTML.
Jupyter Notebook obsługuje również Markdown.
JupyterLab jest środowiskiem, które pozwala zarządzać notebookami, plikami z kodem czy nawet plikami z danymi (np. w formacie CSV).
Środowisko po uruchomieniu tworzy lokalny serwer, do którego łączymy się za pomocą przeglądarki i z jej poziomu obsługujemy środowisko.
Kiedy warto używać Jupytera?
Jupyter to moim zdaniem zdecydowanie najlepsze środowisko do pracy z danymi, w szczególności jeżeli korzystamy z biblioteki pandas lub rysujemy dużo wykresów.
Notebooki idealnie sprawdzą się również jako raporty.
VIM
Przez jednych uwielbiany, przez drugich znienawidzony 🙂 Z tego miejsca zachęcam Cię do przeczytania mojego wpisu „9 funkcji VIMa, które powinieneś znać”.
VIM to program szczególnie trudny w obsłudze na samym początku pracy z nim. Wszystkie operacje wykonywane są albo poprzez kliknięcie kombinacji klawiszy, albo wpisanie odpowiedniej komendy.
Niektóre operacje, nawet te często wykorzystywane, mogą być całkiem skomplikowane. Na przykład polecenie służące do zamiany tekstu „print” na „write” wygląda następująco:
:%s/print/write/g
Mimo wszystko, VIM jest bardzo zaawansowanym edytorem tekstu, które naprawdę pozwala na wiele jeżeli dobrze się go nauczymy.
Po semestrze pracy z VIMem na studiach potrafiłem osiągnąć bardzo wysokie tempo pracy z tym narzędziem i terminalem.
VIMa możemy również skonfigurować tak, aby podkreślał nam pythonową składnie, czy nawet wskazywał błędy stylistyczne. Więcej możesz przeczytać tutaj 🙂
Kiedy warto używać VIMa?
W VIMie trudno byłoby tworzyć duży projekt, jednak do prostych jednoplikowych projektów sprawdza się bardzo dobrze 🙂
Osobiście najczęściej korzystam z VIMa, kiedy zmieniam kod na zewnętrznym serwerze, na przykład na VPSie.
IDLE / konsola Pythona / iPython
IDLE to narzędzie wbudowane w Pythona w systemach Windows. Jednak mam tutaj na myśli samą konsolę REPL, która pozwala szybko wykonywać proste kawałki kodu.
W systemach Linux i Mac (na windowsie też działa) aby uruchomić konsolę wystarczy żeby w terminalu wykonamy polecenie python, python3 bądź python3.7, w zależności od sposobu instalacji.
Uruchomienie konsoli możesz poznać po znaku zachęty „>>>„.
Konsola REPL pozwala na wykonać kod i sprawdzić jego działanie.
Zapomniałeś nazwy wyjątku rzucanego przy wykonywaniu metody na zmiennej o wartości None? Sprawdź to!
>>> None.lower()
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
None.lower()
AttributeError: 'NoneType' object has no attribute 'lower'
Alternatywą jest tutaj iPython, który jest ulepszeniem zwykłej konsoli Pythona. iPython jest silnikiem, na którym działa Jupyter.
Kiedy warto używać konsoli Pythona?
Konsola najpierw sprawdza się do szybkiego sprawdzenia działania krótkiego fragmentu kodu czy metody. W niektórych przypadkach jest to dużo szybsze niż wyszukanie odpowiedniej informacji w dokumentacji.
Podsumowanie
Jakie środowisko wybrać? To zależy tylko i wyłącznie od Ciebie 🙂
Przedstawiłem Ci tutaj środowiska, z których korzystam już dłuższy czas i z których jestem zadowolony. Wskazałem również kryteria, jakim kieruję się podczas wyboru środowiska do konkretnego zadania.
Jeżeli jesteś na początku swojej drogi to polecam Ci jak najszybciej wybrać jedno z środowisk i od razu zabrać się za naukę 🙂 Dobrym wyborem na początek może być PyCharm lub VS Code, gdyż pomogą Ci wyłapać pewne błędy oraz niedoskonałości stylistyczne kodu.
Dzięki za dotrwanie do końca 😉
Pozdrawiam Cię serdecznie.
Kamil Kwapisz
PS. Pobrałeś już nowego ebooka „Ścieżki rozwoju w Pythonie„? Jeśli nie to kliknij na okładkę 😉
Polecam PyScripter. Mały i pieruńsko szybki w porównaniu z kobyłą jak PyCharm
Dzięki za polecenie, wygląda obiecująco 🙂
Moim zdaniem brakuje jeszcze Visual Studio. Mam wersję 2019 i też ma dość sporo narzędzi do pracy z Pythonem. Polecam się przyjrzeć w miarę możliwości, bo nawet darmowa wersja bardzo dużo potrafi, ma też wsparcie dla baz danych. Osobiście wolę PyCharma (głównie z przyzwyczajenia i dlatego, że mogę go uruchomić na Linuxie bez problemu) ale pod Windows – IDE warte rozważenia, szczególnie, kiedy wchodzi w to ktoś nowy, bez przyzwyczajeń.
Dzięki za komentarz 😉
Przyznam mnie Visual Studio odrzuciło od razu, jednak faktycznie jest to kombajn, którego zaletą na pewno jest wsparcie wielu technologii 🙂
Hej Kamil 🙂,
Ja korzystam do pisania w Pythonie PyCharm i na tą chwilę tylko tego. Zainteresowałeś mnie tym artykułem żeby korzystać też z VSC do Pythona. Nigdy tego nie próbowałem.
Próbowałem zainstalować wtyczkę Kite Python ale wtyczka prosi o doinstalowywanie jakiś dodatkowych zewnętrznych dependencies więc na razie spasowałem 😋.
Lubię PyCharm za to że można na nim wszystko zrobić. Nie mam wersji premium ale myślę że w przyszłości sobie taką sprawię jak będę coś pisał w Django.
Na swoim blogu pisałem też o IDE z których korzystam lub korzystałem (były to jeszcze czasy kiedy interesowałem się Javą 😉). Podaje poniżej link do tego wpisu:
https://mstem.net/best-coding-ides/
Fajnie się czyta twojego bloga Kamil, więc postaram się częściej wpadać.
Cześć 👋.
Hej Mateusz 🙂
Myślę, że jeżeli ktoś ma wolną chwilę to warto zerknąć na różne dostępne narzędzia, ja osobiście też początkowo nie byłem przekonany do VSCode, a naprawdę pisze mi się w nim najlepiej.
Dzięki, cieszę się że podobają Ci się artykuły! 🙂
Pozdrawiam!
Ja korzystam z sublime text i uważam, że to wystarczy. Nie tylko dla pythona ale wielu innych języków, jest optymalny i wystarczający. Jeśli chodzi natomiast o uzupełnienie VsCode. Fajny poradnik!
Dzięki!
Sublime faktycznie wystarcza dla większości programistów i języków, a i świetnie sprawdza się po prostu jako notatnik 🙂