Een ontwikkelomgeving (IDE) biedt tools om snel en efficiënt te programmeren met Python. Kies degene die past bij wat je met Python wilt doen, want ze zijn erg verschillend en Python is ongelooflijk veelzijdig. Dit overzicht helpt je op weg.
Om Python te programmeren is een eenvoudige teksteditor voldoende, zoals elk besturingssysteem die heeft.
Maar een ontwikkelomgeving (Integrated Development Environment oftewel IDE) biedt functies die programmeren met Python veel comfortabeler maken.
Programmeren met Python – makkelijker met de juiste software
Een ontwikkelomgeving (IDE) kan je bijvoorbeeld helpen met het volgende:
- fouten in de syntaxis of bij het gebruik van haakjes automatisch markeren,
- namen van klassen automatisch overal hernoemen,
- code automatisch opmaken (bijvoorbeeld met kleur) voor betere leesbaarheid,
- automatisch namen of andere code-elementen aanvullen, voor minder typen (‘code-completion’)
- vanuit een enkele omgeving code schrijven, testen en uitvoeren,
- diagrammen of andere uitvoer genereren.
Met een krachtige IDE kan bijvoorbeeld hernoemen van klassen met twee muisklikken uitgevoerd worden.
Kies de beste software voor jouw doel
Aan alle verschillende behoeften kan niet worden voldaan door één programma alleen. Je eigen voorkeuren en wensen spelen een rol bij het kiezen van een bepaalde IDE.
Daarom beschrijven we hieronder verschillende ontwikkelomgevingen – van eenvoudig tot volwaardig, van snel geïnstalleerd tot browser-gebaseerd met een lokale webserver.
Zo kun je zelf voor programmeren met Python de software kiezen die op je wensen aansluit. Installeer ook eerst Python (in Windows of in Linux).
Programmeren met Python – interactieve console
Als je snel even een opdracht wilt typen, is het onnodig tijdrovend om eerst een bestand te moeten maken dat je daarna toch weer gaat verwijderen.
Als je gewoon python intypt zonder verdere parameters, bijvoorbeeld in een Opdrachtprompt-venster van Windows of Terminal-app van Linux, zal een interactieve console starten.
De interactieve console voert elke regel die je met Enter bevestigt meteen uit. Dit wordt ook wel REPL (Read, Evaluate, Print, Loop) genoemd.
De interactieve console bewijst zijn nut bij het afzonderlijk testen van kleine stukjes code. Hij is zelfs geschikt als zakrekenmachine, omdat het resultaat van elke berekening onmiddellijk in de console verschijnt.
Betere interactieve console
Standaard ontbreekt code-completion: daarmee wordt al tijdens het intypen aangeven hoe de coderegel moet worden voortgezet, wat typewerk bespaart en fouten voorkomt.
Met het commando pip install ipython installeer je de IPython-console, die interactief Python typen veel aangenamer maakt.
Start die console gewoon met ipython zonder parameters en profiteer van kleurrijke code die met de Tab-toets kan worden voltooid.
Programmeren met Python – Jupyter Notebooks
Soms wil je ook visualiseren en in de code documenteren hoe je tot een resultaat gekomen bent (bijvoorbeeld in de wetenschap en het onderwijs). Jupyter Notebooks zijn daar ideaal voor.
Jupyter gebruikt de term notebook voor een document dat bestaat uit opgemaakte tekst – desgewenst inclusief afbeeldingen – en codefragmenten. Je kunt elke grijs weergegeven codecel uitvoeren met Shift+Enter, de console-output en returnwaarden komen er dan onder te staan.
Het grootste voordeel is dat de browser ook dynamisch gegenereerde afbeeldingen kan weergeven. Een voorbeeld: met de magische regel %matplotlib maak je inline diagrammen met de gelijknamige bibliotheek beschikbaar. Als de laatste regel van een codecel een diagramobject weergeeft, tekent de browser dat direct onder het blok. Inbedden van diagrammen gaat veel sneller dan bij een spreadsheet.
Door de duidelijke codestructuur, meestal met verklarende teksten tussen de cellen, en de onmiddellijk zichtbare diagrammen, zijn Jupyter Notebooks de favoriete tool van veel statistici en bijna alle AI-onderzoekers. Google biedt het concept onder de naam Colab aan als een clouddienst.
Teksteditor met extra’s
Voor kleine scripts en het programmeren op een Raspberry Pi is een teksteditor voldoende. Hij moet in elk geval trefwoorden, getallen en strings markeren (syntax-highlighting), zodat je structuren in de code makkelijker kunt vinden.
Sommige standaard geïnstalleerde editors, zoals Gedit onder Gnome, kunnen dat van zichzelf al. Jammerlijke uitzonderingen zijn de standaard macOS-editor en Kladblok van Windows: een alternatief op die platformen is bijvoorbeeld Notepad++ (gratis download).
Als je echter verwacht dat je programmeerprojecten enkele honderden regels code lang zullen zijn, kun je beter meteen van begin af aan voor een krachtigere IDE gaan, zodat je niet twee keer hoeft te wennen aan een nieuwe programma-interface.
Editor met startknop
Een editor slaat het Python-bestand alleen op met de extensie .py. Om het uit te voeren, open je een consolevenster en typ je python filename.py in.
Op de Raspberry Pi is Spyder een standaard geïnstalleerde editor met een startknop voor je programma. Dan hoef je niet over te schakelen naar het consolevenster als je een script wilt testen. Je kunt Spyder ook op andere systemen installeren.
Uitgebreide teksteditor – Sublime Text
Sublime Text is een teksteditor die veel programmeertalen ondersteunt – waaronder Python. Hij biedt syntax-highlighting voor Python en een execute-knop in de vorm van een Build-commando.
Je moet voor langdurig gebruik een licentie kopen (99 dollar), maar de testversie werkt voor onbeperkte tijd. Bij macOS klaagt Sublime soms over ontbrekende pakketten van Xcode voordat de code uitgevoerd wordt, maar bij alle andere besturingssystemen start het meteen na het installeren.
Nog makkelijker programmeren met plug-ins
Sublime werkt met de standaardinstellingen al prima, maar met een paar extra pakketten pas je de editor aan jouw wensen aan. De pakketten zijn opensource en kunnen rechtstreeks geïnstalleerd worden via de geïntegreerde Package Control. Klik daarvoor op Tools op de menubalk en vervolgens op Command Palette. Typ Install Package Control in en bevestig met Enter.
Handige plug-ins zijn bijvoorbeeld SublimeREPL, Anaconda en BracketHighlighter.
Ondanks de vele plug-ins heeft Sublime niet alle functies van een IDE, daarom is deze editor vooral geschikt voor programmeurs die prijs stellen op een duidelijke interface en snelheid.
Visual Studio Code gebruiken voor programmeren met Python
Visual Studio Code, afgekort VSCode of VSC, is een populaire IDE voor vele talen en besturingssystemen (Windows, Linux en macOS). VSC is ontwikkeld als opensource software en is vooral populair vanwege zijn modulaire opzet.
VSC wordt een Python-IDE door een Python-uitbreiding te installeren. De Marketplace voor extensies staat in VSC links op de menubalk bij het pictogram met de vier bouwstenen.
De populairste (maar niet de enige) Python-extensie heet gewoon Python en is ook afkomstig van Microsoft. Na een paar regels zul je niet meer zonder de auto-completion ervan willen: wanneer je aan het typen bent, krijg je functie- en variabelennamen voorgesteld en verschijnt voor elke functie een pop-up met een uitleg van de parameters.
Ook handig: op de onderste balk kun je snel schakelen tussen verschillende Python-versies die op het systeem geïnstalleerd zijn. En als je graag met Jupyter Notebooks werkt, kun je die dankzij de betreffende extensie rechtstreeks in de IDE uitvoeren – het is niet nodig om daarvoor naar een browser te gaan.
Programmeren met Python voor beginners en gevorderden
Interessant in VSC voor gevorderden: een Python-debugger, een linter (een tool die stilistische en syntactische fouten vindt), hulpmiddelen voor refactoring en besturingselementen voor unit-tests zijn ook ingebouwd.
Visual Studio Code is voor beginners een goed en gratis alternatief voor een gewone teksteditor, maar ook een tool waarvoor veel professionals betaalde IDE’s links laten liggen.
Vooral als je naast Python ook andere programmeer- of mark-uptalen bewerkt, kun je met VSC en de juiste uitbreidingen een werkomgeving configureren voor alle programmeersituaties.
PyCharm – volwaardige IDE
Als je grote Python-projecten ontwikkelt en geen concessies wilt doen bij een IDE, zou je eens naar PyCharm moeten kijken. Die commerciële ontwikkelomgeving van JetBrains parst de code zelf en maakt gebruik van zogeheten inspections om je tijdens het typen te wijzen op fouten, problemen en een onzuivere stijl.
PyCharm biedt ook zeer krachtige tools voor refactoring tot en met het veranderen van variabelennamen binnen strings. Een interactieve console, een testrunner en virtualenvs zijn naadloos geïntegreerd in de programma-interface. In de debuggermodus zet je met een enkele klik breakpoints naast de coderegel en PyCharm toont in een venster welke waarden aan de variabelen zijn toegewezen.
PyCharm is gratis beschikbaar als een Community-editie zonder ondersteuning. In vergelijking met de Professional-versie ontbreken enkele functies die echter niet essentieel zijn om mee aan de slag te kunnen gaan. Beide versies openen dezelfde projectbestanden.
De IDE is geprogrammeerd in Java, een computer met 8 GB RAM of meer is aanbevolen.
Wat maakt het een volwaardige IDE?
Je kunt alle functies van PyCharm op de website vinden, we noemen hier een paar hoogtepunten:
- Met Ctrl+klik op een functienaam ga je naar de definitie van de betreffende functie. Dat werkt ook met bibliotheken.
- Door met de rechtermuisknop te klikken op een variabele en Find Usages te selecteren in het menu dat verschijnt, wordt een overzicht geopend van alle plaatsen waar die variabele gebruikt wordt. Het overzicht is zelfs gesorteerd op type. Dat werkt ook met functies en klassen.
- Het menu-item ‘Code / Reformat Code’ formatteert een volledig bestand volgens de voorkeuren die zijn ingesteld bij de project-instellingen. Als je stukken code selecteert, kun je ook alleen het geselecteerde deel automatisch formateren.
- De variabelenlijst in de rechterhelft van het debuggervenster is mooi geïmplementeerd en toont de datatypes met kleine symbolen. Aangezien Python niet statisch getypeerd is, kun je daar snel zien of variabelen verkeerd toegekend zijn. Ook de groene vinkjes bij het uitvoeren van unit-tests zijn duidelijk, waarmee je mislukte tests veel sneller kunt herkennen dan bij de console-uitvoer van de testrunner.
Conclusie
IDE’s verlossen je van herhalende taken en waarschuwen je ook in een verbazingwekkend vroeg stadium voor fouten. Dat kan het programmeren enorm versnellen en veel uren aan debuggen besparen. Het hangt van je doel en voorkeuren af welke je kiest.
Van een IDE moet je geen wonderen verwachten: die helpt je niet een goed idee voor een algoritme te bedenken. Programmeren is een mentaal veeleisende taak voor creatieve mensen.
Met een geschikte IDE kun je programmeren met Python zo leuk mogelijk houden en – zo snel mogelijk – een werkend programma maken.
(Deze informatie is afkomstig uit het artikel in c’t 5, 2022, pagina 96, van Pina Merkert, Wilhelm Drehling, Jan Mahn en Noud van Kruysbergen)