Python är Arduino av mjukvaruprojekt. Den har en kritisk massa av bibliotek för allt från ansiktsigenkänning och neurala nätverk till robotik och fjärranalys. Och precis som Arduino, har jag ännu inte hittat Killer IDE för Python. Eventuellt har jag bara inte försökt den bästa än, men det kan vara att jag bara gör python fel.

I år har jag varit ledig

Tomgång med interaktivt skal som har markerat och kodslutning
Jag är en Linux-enda typ av en man, så att använda tomgång för python är en naturlig passform. Det är i repositorierna för mycket snabb och enkel installation och det finns väsentligen nollkonfiguration som ska göras. Typiskt sett är min föredragna utvecklingsmiljö textredigerare och kommandoradskompilator. Tomgång är bara ett steg ovanför det. Du får ett separat fönster för skalet och varje Python-fil du arbetar på. Har i viloläge Kör din kod och det sparar filen, lanserar den sedan i Shell-fönstret.

För mig finns det två viktiga egenskaper hos tomgångs skal. Det första är att det håller en interaktiv session öppen när du kör din Python-kod. Detta innebär att några globaler som dina skript använder fortfarande är tillgängliga, och att du kan prova din kod genom att ringa funktioner (och klasser, etc) i realtid. Det andra önskvärda funktionen är att när du använder det här interaktiva skalet, stöder IDLE kodförbindelse och dokstjärna (det ger dig tips för vilka parametrar som en funktion accepterar / kräver).

Men enkelheten har en svår tidsskalning. Jag jobbar med större och större projekt som sprids över många filer och den enskilda naturen av tomgångsredigerare fönster och brist på robust navigering har mig att flytta framåt.

Utmanarna

Jag har försökt möjligen ett halvt dussin olika Python Ides nu, spendera mest tid på två av dem: Geany och Atom. Båda är lätta att installera på Linux och erbjuda de mycket mer avancerade funktioner som jag vill ha för större projekt: bättre navigering, cross-fil kod slutförande (och varningar), variabel typ och omfattning indikation.

Utseendet på Geany tar med sig en “IDE 1,0” layoutstil och tema. Det är den välbekanta tre-panelen som placerar symboler till vänster, kod till höger och status längs botten. När du kör ditt program lanseras det i en interaktiv terminal, som jag gillar, men du förlorar alla IDE-funktioner vid denna tidpunkt, vilket jag förnekar. Det finns ingen kodslutning, och ingen syntax markerar.

Jag har använt ATOM mycket mycket mer än geany och har vuxit till att det är tillräckligt för att hålla fast vid det för nu. Jag skulle ringa Atom “Ide 2.0” layouten. Det lanserar med ett mörkt tema och allt är en flik.

Atom har symbolvy som inte visas hela tiden. Ctrl-R tar upp det och det använder en sökstil, men du kan också bläddra igenom alla symboler
Atom beror tungt på förpackningar (plugins som någon kan skriva). Pakethanteringen är bra, och de paket jag har försökt har varit fantastiska. Jag använder AutoComplete-Python och Tabs-to-Spaces, men igen kommer jag upp kort när det gäller att köra Python-filer. Jag har försökt Platformio-IDE-terminal, skript och löpare plugins. Den första tar upp en terminal som en bottenpanel men kör inte automatiskt filen i den terminalen. Skriptet använder också en bottenpanel men jag kan inte få det att springa interaktivt. Jag använder för närvarande löpare som har en okej display men är inte interaktiv. Jag har tillgripit att använda en “falsk” Python-fil i mina projekt som en lösning för kommandon och test som jag normalt skulle springa i det interaktiva skalet.

Berätta för oss hur du python

Det är helt möjligt att jag just har använt Python fel alla dessa år och att tinkering med din kod i ett interaktivt skal är en dålig välj av utvecklingsprocesser.

Vad väljer du för din Python-utveckling? Gör en interaktiv skal med dig? Började du med tomgång och omlokalisering till en mycket mer mogen IDE. Vilken IDE hamnade du med och vilken typ av kompromisser gjorde du under den förändringen. Låt oss veta i kommentarerna nedan.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *