Granskning: 6 Python IDE: er går till mattan

Av alla mätvärden som du kan använda för att mäta språkets popularitet och framgång är en säker faktor det antal utvecklingsmiljöer som finns tillgängliga för det. Pythons ökade popularitet under de senaste åren har fört med sig en stark våg av IDE-stöd, med verktyg riktade både till den allmänna programmeraren och de som använder Python för uppgifter som vetenskapligt arbete och analytisk programmering.

Dessa sex IDE: er med Python-stöd täcker omfattningen av användningsfall. Vissa är flerspråkiga IDE: er som har Python-stöd genom ett tillägg eller ompaketering av en annan produkt med Python-specifika tillägg. Var och en gynnar en något annorlunda publik av Python-utvecklare, även om många strävar efter att vara användbara som universella lösningar.

Ett stort antal IDE idag är ramar utrustade med plugins för specifika språk och uppgifter, snarare än appar skrivna inifrån och ut för att främja utveckling på ett visst språk. För detta ändamål kan ditt val av IDE bestämmas av om du har erfarenhet av en annan IDE från samma familj eller inte.

Relaterad video: Varför Python gör det enkelt att programmera

För dem som inte har sådan erfarenhet är PyCharm en av de bästa platserna att börja. Det är vänligt för nykomlingar, men inte hamstrung i dess funktioner. Faktum är att det sporterar några av de mest användbara funktionerna bland alla IDE: er som är profilerade här. Många av dessa funktioner är endast tillgängliga i betalningsversionen av produkten, men det finns mycket i den gratis versionen som hjälper en nybliven utvecklare att komma igång.

LiClipse och Python Tools for Visual Studio (PTVS) är bra val för utvecklare som redan är väl bekanta med Eclipse respektive Microsoft Visual Studio. Båda är fullblåsta utvecklingsmiljöer - så fullblåsta som du kommer att hitta - som integrerar Python ganska snyggt. Men de är också spretande, komplexa applikationer som kommer med mycket kognitiva omkostnader. Om du redan har behärskat någon av dem kommer du att hitta det ett utmärkt val för Python-arbete.

Python-inkarnationen av ActiveStates Komodo IDE är naturligt för dem som redan har använt Komodo IDE för något annat språk, och det har unika funktioner (som utvärderaren för reguljära uttryck) som borde bredda dess överklagande. Komodo förtjänar en närmare titt från både nybörjare och experter.

Spyder passar bäst för att arbeta med IPython eller andra vetenskapliga datorverktyg i distributioner som Anaconda, snarare än som en utvecklingsplattform för Python i allmänhet. Slutligen är IDLE bäst reserverat för snabb och smutsig skriptning, och även i det avseendet kan det ta en baksäte till en fristående kodredigerare med ett Python-syntax-plugin. Som sagt, IDLE är alltid där när du behöver det.

PÅ TOMGÅNG

IDLE, utvecklingsmiljön som ingår i de flesta installationer av Python, kan betraktas som standard Python IDE. IDLE är emellertid på intet sätt en ersättning för en fullblåst IDE; det är mer som en snygg filredigerare. Ändå förblir IDLE ett av standardalternativen för Python-utvecklare att få ett steg med språket, och det har förbättrats stegvis med varje version av Python, särskilt med Python 3.5. (Se den här sidan för intressant diskussion om de senaste ansträngningarna för att förbättra IDLE.)

IDLE är byggt helt med komponenter som levereras med en standardinstallation av Python. Bortsett från själva CPython-tolken inkluderar detta Tkinter-gränssnittsverktygssatsen. En välsignelse med att bygga IDLE på det här sättet: Den kör plattform med en konsekvent uppsättning beteenden. Som en nackdel kan gränssnittet vara väldigt långsamt. Att skriva ut stora mängder text från ett skript till konsolen är till exempel många storleksordningar långsammare än om skriptet körs direkt från kommandoraden.

IDLE har några omedelbara bekvämligheter. Den har en inbyggd läs-eval-print loop (REPL) eller interaktiv konsol för Python. I själva verket är detta interaktiva skal det första objektet som presenteras för användaren när IDLE startas snarare än en tom redigerare. IDLE innehåller också några verktyg som finns i andra IDE, som att ge förslag på nyckelord eller variabler när du trycker på Ctrl-Space och en integrerad felsökare. Men implementeringarna för de flesta av dessa funktioner är primitiva jämfört med andra IDE och dolda av Tkinter begränsade urval av UI-komponenter. Och samlingen av tillägg från tredje part som är tillgängliga för IDLE (ett sådant projekt är IdleX) är inte så nära som du hittar med andra IDE.

Sammanfattningsvis är IDLE bäst för två scenarier. Den första är när du vill hacka ihop ett snabbt Python-skript och du behöver en förkonfigurerad miljö för att göra det. Den andra är för nybörjare som bara får benen. Även nybörjare kommer snabbt att behöva ta examen till ett mer robust alternativ.

Spyder

Spyder är en förkortning för "Scientific PYthon Development EnviRonment." Den är avsedd att användas som en arbetsbänk för vetenskaplig databehandling med Python, och det återspeglas i funktionsuppsättningen, förpackningen och IDE: s övergripande beteende. Spyder har användbara funktioner för allmän Python-utveckling, men om du inte arbetar huvudsakligen med IPython och vetenskapliga datapaket, är du förmodligen bättre med en annan IDE.

Den största anledningen att inte använda Spyder som en allmän Python-utvecklingsmiljö är inte funktionsuppsättningen utan installationsprocessen. Spyder levereras inte som en fristående körbar på samma sätt som en produkt som Visual Studio eller PyCharm. Istället installeras det som ett Python-paket. Din enklaste väg till Spyder är att installera en Python-distribution som följer med den förinstallerad, till exempel Continuum Analytics Anaconda.

1. Finns som tillägg, men stöder endast syntaxkontroll. 2. Finns som tillägg för Eclipse. 3. Finns i kommersiell version. 4. Se integrationsinstruktioner. 5. Använder versionskontrollsystem installerade på värden.
  PÅ TOMGÅNG Komodo LiClipse PyCharm PTVS Spyder
Cython-stöd Nej Ja (1) Nej Ja (3) Nej Nej
Versionskontroll Nej Ja Ja Ja Ja Ja (5)
Grafisk felsökare Nej Ja Ja Ja Ja Nej
IPython-stöd Nej Nej Nej Ja Ja (4) Ja
Makron Nej Ja Ja (2) Ja (2) Ja Nej
Flera tolkar Nej Ja Ja Ja Ja Ja
Refactoring Nej Ja Ja Ja Ja Nej
Databasintegration Nej Ja Ja (2) Ja (3) Ja Nej
HTML / CSS / JavaScript Nej Ja Ja Ja Ja (3) Nej

Spyder inkluderar IPython, som är en ersättning för den konventionella Python-konsolen. När du skriver kommandon i IPython kan resultaten interaktivt utforskas. Varje kommando kan behandlas som en "cell" eller ett kodsegment som kan ha sin utdata lagrad och sorterad.

Spyder lägger till detta genom att integrera cellbeteenden i kodredigeraren. Om du sätter in särskilt formaterade kommentarer i något Python-skript kan du dela det i celler och köra dessa celler i IPython-gränssnittet i valfri ordning. På så sätt är det enkelt att använda Spyder för att prototypa celler för placering i en IPython-anteckningsbok senare.

För felsökning använder Spyder Pythons inbyggda Pdb-felsökare. Kommandoradsgränssnittet för Pdb är långt ifrån de mer sofistikerade grafiska felsökarna som finns i PyCharm eller LiClipse, även om du kan installera Winpdb grafisk felsökare som ett valfritt tillägg. Tyvärr kan du inte använda Winpdb med Python 3, eftersom det har beroenden på paket som fortfarande bara finns i Python 2 (specifikt wxPython). För detta ändamål kommer de flesta att fastna med Pdb.

Spyder är också begränsad jämfört med andra IDE i sin integration med versionskontrollsystem som Git och Mercurial. Om du arbetar i en initialiserad projektförvaring kommer filer i det projektet att visa högerklicka på snabbmenyobjekten för förvaret. Med det sagt finns inga versionskontrollmekanismer inbyggda direkt i Spyder; du måste ha lämplig versionskontrollapplikation redan installerad på systemnivå, med dess körbara filer tillgängliga från systemvägen. Spyder innehåller inte heller verktyg för att hantera förvar i sitt användargränssnitt. Dessa brister är inte så dåliga om du redan har för vana att hantera förvar själv, men de utgör ytterligare hinder om du inte är det.

Spyder har användbara funktioner för allmän Python-utveckling. En som omedelbart fångade mitt öga är den variabla utforskaren i Spyders gränssnitt. När du skriver kommandon i IPython loggas alla skapade variabler där och kan utforskas interaktivt. Ett annat användbart verktyg är User Module Deleter. Aktivera det och Python-tolken laddar om alla moduler från grunden när den kör ett Python-skript. På detta sätt kan alla ändringar som görs i en modulskod tillämpas på ett program som körs utan att hela programmet måste startas om.

ActiveState Komodo IDE

ActiveStates serie IDE-produkter innehåller versioner för nästan alla större språk. Företagets inställning till detta är lite som hur LiClipse fungerar: Ta basprodukten (i det här fallet Komodo IDE) och klä den med tillägg för Python-utveckling.

Komodo passar bäst för dem som redan är bekanta med Komodos inkarnationer för andra språk. Människor med sådan erfarenhet under bältet har inga problem att dyka in i Python-produkten. Om du kommer kallt finns det några användargränssnitt som är värda att notera. Till exempel är appmenyfältet inte exponerat som standard; du måste klicka på hamburgermenyn längst upp till höger eller trycka på Alt-tangenten för att visa den. Det är tänkt att hålla sakerna rena och enkla, men kan vara för minimalistiska för vissa smaker.

Å andra sidan är några av gränssnittsvalen omedelbart tilltalande. Jag gillade särskilt "minimap", en utzoomad förhandsgranskning av koden i redigeraren, som låter dig snabbt hoppa till någon del av filen du redigerar. LiClipse har en liknande funktion, men Komodos implementering är lättare att arbeta med.

De flesta Python IDE-apparater är utrustade med sådana som Python-specifik syntaxkontroll eller kodfodring. Komodo IDE har allt det, men det har också utformats för att stödja version 2 och 3 av språket samtidigt. Om du till exempel vill starta ett Python-skal och du har tolkar för båda versionerna av Python tillgängliga i din systemväg kan du uttryckligen välja vilken version som helst. Jag har ofta behövt köra snabba tester av beteenden för ett visst uttalande i Python 2 och Python 3 sida vid sida, och detta är ett praktiskt sätt att göra det.

Komodo ger dig möjlighet att tillämpa flera konfigurationer för körning eller felsökning för en applikation, men den är lite mindre flexibel än en liknande funktion i LiClipse. När du startar en app får du ett urval av profiler att applicera på programmet. Du kan inaktivera profilväljaren och hoppa rakt in i att köra en profil, men inaktiveringen kan bara göras på applikationsomfattande basis, inte för ett visst projekt. Jag föredrar LiClipses rullgardinsmeny i verktygsfältet där du kan välja en viss profil eller starta den senast använda profilen med ett klick.

En riktigt underbar inkludering är en verktygslåda för reguljära uttryck. Skriv ett reguljärt uttryck i en ruta i det här verktyget, ange exempeldata för att tillämpa det i en andra ruta, och resultaten visas i en tredje. Verktyget stöder också flera smaker av regex, inklusive Python, och till och med visar resultaten av matchning, split och ersättningsoperationer. Jag kämpar hela tiden med att skapa regexexemplar, så det här verktyget är en sken.

En annan användbar out-of-the-box-funktion är en katalog med vanliga kodavsnitt för Python. Klicka till exempel på "gå", och redaktören infogar pannkodskoden för att använda Pythons os.walkfunktion för att korsa kataloger, en av funktionerna vars syntax och användning jag aldrig kan komma ihåg direkt. Andra språk ingår också. Till exempel, om du behöver släppa standardutgåva-HTML till en Django-mall du lagar ihop, har Komodo dig täckt.

Standard Python-distributionen kommer med stöd för SQLite ur lådan. Komodo IDE kompletterar detta genom att tillhandahålla en inbyggd utforskare för SQLite-databaser. Det är ungefär som en avskalad version av skrivbordsapparna ”workbench” som tillhandahålls för MySQL eller Microsoft SQL Server. Gränssnittet är klumpigt och otilltalande, men det passar perfekt för snabb och smutsig inspektion eller platsredigering av en databas. Det är inte avsett att fungera som en fullständig databas-IDE.

Du hittar många andra användbara funktioner i Komodo, även om de inte specifikt riktar sig till Python. Makroinspelaren låter dig spela in och spela upp vanliga åtgärder, även om det inte verkar spela in vissa typer av åtgärder som att välja vilken appprofil som ska användas när du startar en app. En annan funktion möjliggör samarbete i realtid mellan Komodo-användare, men de måste registrera sig för konton med ActiveState för att få tillgång till tjänsten.

LiClipse 

Eclipse IDE kritiseras ofta som långsam och överbelastad, men dess breda språkstöd och galleri för utvecklingstillägg gör det till ett kraftfullt och värdefullt verktyg. Python stöds i Eclipse via PyDev-tillägget. Om du använder Eclipse för inget annat än Python-utveckling är din bästa satsning att ta tag i LiClipse. (Under hela denna recension kommer jag att använda LiClipse som stenografi för det paket med funktioner som tillhandahålls av LiClipse och PyDev tillsammans.)

LiClipse är en ompackning av Eclipse med PyDev, tillsammans med en massa andra Eclipse-komponenter som är avsedda att förbättra användarupplevelsen. När LiClipse lanserades ser det ut och beter sig ungefär som den vanliga upplagan av Eclipse, vilket hindrar LiClipse-märket och ikonerna, så erfarna Eclipse-användare borde inte ha mycket problem med att konfigurera arbetsytan efter eget tycke. Om du inte har erfarenhet av Eclipse behöver du lite tid för att lära dig hur Eclipses arbetsyta fungerar (denna aspekt av Eclipse kritiseras rutinmässigt). I den meningen är LiClipse bäst för människor som redan är bekväma med Eclipse, kanske från att arbeta på det via ett annat språk.

Score-kort Kapacitet (30%) Prestanda (10%) Användarvänlighet (20%) Dokumentation (20%) Tillägg (20%) Totalpoäng (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 för Visual Studio 2015 9 8 7 9 9 8.5