Programmering

Gjennomgang: 6 Python IDE-er går til matten

Av alle beregningene du kan bruke til å måle populariteten og suksessen til et språk, er en sikker faktor det antall utviklingsmiljøer som er tilgjengelig for det. Pythons økning i popularitet de siste årene har ført med seg en sterk bølge av IDE-støtte, med verktøy rettet både mot den generelle programmereren og de som bruker Python til oppgaver som vitenskapelig arbeid og analytisk programmering.

Disse seks IDEene med Python-støtte dekker omfanget av brukssaker. Noen er flerspråklige IDEer som har Python-støtte gjennom et tillegg eller ompakking av et annet produkt med Python-spesifikke utvidelser. Hver fordeler et litt annet publikum av Python-utvikler, selv om mange prøver å være nyttige som universelle løsninger.

Et stort antall IDEer i dag er rammer utstyrt med plugins for spesifikke språk og oppgaver, i stedet for apper skrevet fra innsiden og ut for å fremme utvikling på et gitt språk. For det formål kan ditt valg av IDE bestemmes av om du har erfaring med en annen IDE fra samme familie eller ikke.

Relatert video: Hvorfor Python gjør programmering enkel

For de som ikke har slik erfaring, er PyCharm et av de beste stedene å starte. Det er vennlig for nykommere, men ikke hindret i funksjonssettet. Faktisk har den noen av de mest nyttige funksjonene blant alle IDEene som er profilert her. Mange av disse funksjonene er bare tilgjengelige i betalingsversjonen av produktet, men det er nok i den gratis versjonen som kan hjelpe en nyutviklet utvikler i gang.

LiClipse og Python Tools for Visual Studio (PTVS) er gode valg for utviklere som allerede er godt kjent med henholdsvis Eclipse og Microsoft Visual Studio. Begge er fullstendige utviklingsmiljøer - så fullverdige som du kommer til å finne - som integrerer Python ganske pent. Imidlertid er de også viltvoksende, komplekse applikasjoner som kommer med mye kognitiv overhead. Hvis du allerede har mestret noen av dem, vil du finne det et godt valg for Python-arbeid.

Python-inkarnasjonen av ActiveStates Komodo IDE er naturlig for de som allerede har brukt Komodo IDE på et annet språk, og den har unike funksjoner (som evaluatoren for vanlig uttrykk) som burde utvide appellen. Komodo fortjener en nøye titt fra både nybegynnere og eksperter.

Spyder er best egnet til å jobbe med IPython eller andre vitenskapelige databehandlingsverktøy i distribusjoner som Anaconda, snarere enn som en utviklingsplattform for Python generelt. Til slutt er IDLE best reservert for raskt og skittent skript, og til og med på den måten kan det ta en baksetet til en frittstående kodeditor med et Python-syntaks-plugin. Når det er sagt, er IDLE alltid der når du trenger det.

TOMGANG

IDLE, utviklingsmiljøet som følger med de fleste installasjoner av Python, kan betraktes som standard Python IDE. Imidlertid er IDLE på ingen måte en erstatning for en fullverdig IDE; det er mer som en fancy filredigerer. Likevel forblir IDLE et av standardalternativene for Python-utviklere for å få tak i språket, og det har forbedret seg gradvis med hver utgivelse av Python, spesielt med Python 3.5. (Se denne siden for interessant diskusjon om den nylige innsatsen for å forbedre IDLE.)

IDLE er bygget helt med komponenter som leveres med en standardinstallasjon av Python. Bortsett fra selve CPython-tolken, inkluderer dette Tkinter-grensesnittverktøyet. En velsignelse med å bygge IDLE på denne måten: Den kjører plattform med et konsistent sett av atferd. Som en ulempe kan grensesnittet være veldig sakte. Å skrive ut store mengder tekst fra et skript til konsollen, er for eksempel mange størrelsesordener langsommere enn hvis skriptet kjøres direkte fra kommandolinjen.

IDLE har noen umiddelbare bekvemmeligheter. Den har en innebygd read-eval-print loop (REPL), eller interaktiv konsoll, for Python. Faktisk er dette interaktive skallet det første elementet som presenteres for brukeren når IDLE lanseres, i stedet for en tom redaktør. IDLE inkluderer også noen få verktøy som finnes i andre IDEer, for eksempel å gi forslag til nøkkelord eller variabler når du treffer Ctrl-Space, og en integrert feilsøkingsprogram. Men implementeringene for de fleste av disse funksjonene er primitive sammenlignet med andre IDEer og skjult av Tkinter's begrensede utvalg av UI-komponenter. Og samlingen av tredjeparts tillegg som er tilgjengelig for IDLE (et slikt prosjekt er IdleX) er ikke så nær som du finner med andre IDEer.

I sum er IDLE best for to scenarier. Den første er når du vil hacke sammen et raskt Python-skript, og du trenger et forhåndskonfigurert miljø for å gjøre det. Det andre er for nybegynnere som bare får beina. Selv nybegynnere må raskt oppgradere til et mer robust alternativ.

Spyder

Spyder er en forkortelse for "Scientific PYthon Development EnviRonment." Den er ment for bruk som arbeidsbenk for vitenskapelig databehandling med Python, og det gjenspeiles i funksjonssettet, emballasjen og IDEs generelle oppførsel. Spyder har nyttige funksjoner for generell Python-utvikling, men med mindre du jobber hovedsakelig med IPython og vitenskapelige databaser, er du sannsynligvis bedre med en annen IDE.

Den største grunnen til ikke å bruke Spyder som et generelt Python-utviklingsmiljø er ikke funksjonssettet, men installasjonsprosessen. Spyder leveres ikke som en frittstående kjørbar på samme måte som et produkt som Visual Studio eller PyCharm. I stedet er den installert som en Python-pakke. Den enkleste veien til Spyder er å installere en Python-distribusjon som følger med den forhåndslastet, for eksempel Continuum Analytics Anaconda.

1. Tilgjengelig som utvidelse, men støtter kun syntakskontroll. 2. Tilgjengelig som Eclipse-tillegg. 3. Tilgjengelig i kommersiell versjon. 4. Se integrasjonsinstruksjoner. 5. Bruker versjonskontrollsystemer installert på verten.
 TOMGANGKomodoLiClipsePyCharmPTVSSpyder
Cython-støtteNeiJa (1)NeiJa (3)NeiNei
VersjonskontrollNeiJaJaJaJaJa (5)
Grafisk feilsøkingsprogramNeiJaJaJaJaNei
IPython-støtteNeiNeiNeiJaJa (4)Ja
MakroerNeiJaJa (2)Ja (2)JaNei
Flere tolkerNeiJaJaJaJaJa
RefactoringNeiJaJaJaJaNei
DatabaseintegrasjonNeiJaJa (2)Ja (3)JaNei
HTML / CSS / JavaScriptNeiJaJaJaJa (3)Nei

Spyder inkluderer IPython, som er en erstatning for den konvensjonelle Python-konsollen. Når du skriver inn kommandoer i IPython, kan resultatene utforskes interaktivt. Hver kommando kan behandles som en "celle" eller et kodesegment som kan lagres og sorteres.

Spyder legger til dette ved å integrere celleoppførsel i kodeditoren. Hvis du setter inn spesialformaterte kommentarer i et hvilket som helst Python-skript, kan du dele det i celler og utføre disse cellene i IPython-grensesnittet i hvilken som helst rekkefølge. På denne måten er det enkelt å bruke Spyder til å prototype celler for plassering i en IPython-notatbok senere.

For feilsøking bruker Spyder Pythons innebygde Pdb-feilsøkingsprogram. Kommandolinjegrensesnittet for Pdb er langt fra de mer sofistikerte grafiske feilsøkingsprogrammene som finnes i PyCharm eller LiClipse, selv om du kan installere Winpdb grafiske feilsøkingsprogrammet som et valgfritt tillegg. Dessverre kan du ikke bruke Winpdb med Python 3, da det har avhengigheter av pakker som fremdeles bare er tilgjengelige i Python 2 (spesielt wxPython). For det formål vil de fleste være fast med Pdb.

Spyder er også begrenset sammenlignet med andre IDEer i integrasjonen med versjonskontrollsystemer som Git og Mercurial. Hvis du jobber i et initialisert prosjektlager, vil filer i prosjektet vise høyreklikk på hurtigmenyelementene for depotet. Når det er sagt, er det ingen versjonskontrollmekanismer innebygd direkte i Spyder; du må ha riktig versjonskontrollapplikasjon allerede installert på systemnivå, med kjørbare filer tilgjengelig fra systemstien. Spyder inkluderer heller ikke verktøy for å administrere repositorier i brukergrensesnittet. Disse manglene er ikke så ille hvis du allerede har for vane å administrere repositorier selv, men de utgjør ytterligere hindringer hvis du ikke er det.

Spyder har nyttige funksjoner for generell Python-utvikling. En som umiddelbart fikk øye på meg, er den variable utforskerruten i Spyder's grensesnitt. Når du skriver inn kommandoer i IPython, logges alle opprettede variabler der og kan utforskes interaktivt. Et annet nyttig verktøy er User Module Deleter. Aktiver det, og Python-tolk vil laste alle moduler på nytt fra bunnen av når den kjører et Python-skript. På denne måten kan alle endringer som er gjort i koden til en modul, brukes på et program som kjører uten å måtte starte hele applikasjonen på nytt.

ActiveState Komodo IDE

ActiveStates serie IDE-produkter inkluderer versjoner for nesten alle større språk. Virksomhetens tilnærming til dette ligner litt på hvordan LiClipse fungerer: Ta grunnproduktet (i dette tilfellet Komodo IDE) og klær det med tillegg for Python-utvikling.

Komodo passer best for de som allerede er kjent med inkodasjoner av Komodo for andre språk. Mennesker med slik erfaring under beltet vil ikke ha problemer med å dykke ned i Python-produktet. Hvis du kommer kaldt, er det noen UI-særegenheter som er verdt å merke seg. Appmenylinjen er for eksempel ikke eksponert som standard; du må klikke på hamburgermenyen øverst til høyre eller trykke på Alt-tasten for å vise den. Det er ment å holde saken ren og enkel, men kan være for minimalistisk for noen smaker.

På den annen side er noen av grensesnittvalgene umiddelbart tiltalende. Jeg likte spesielt "minimap", en zoomet ut forhåndsvisning av koden i redigeringsprogrammet, som lar deg raskt hoppe til hvilken som helst del av filen du redigerer. LiClipse har en lignende funksjon, men Komodos implementering er lettere å jobbe med.

De fleste Python IDE-er er utstyrt med slike som Python-spesifikk syntakskontroll eller koding. Komodo IDE har alt det, men det er også designet for å støtte versjon 2 og 3 av språket samtidig. Hvis du for eksempel vil starte et Python-skall, og du har tolker for begge versjonene av Python tilgjengelig i systemstien din, kan du eksplisitt velge hvilken versjon. Jeg har ofte hatt behov for å kjøre raske tester av oppførselen til en gitt uttalelse i Python 2 og Python 3 side om side, og dette er en praktisk måte å gjøre det på.

Komodo gir deg muligheten til å bruke flere kjøre- eller feilsøkingskonfigurasjoner for et program, men det er litt mindre fleksibelt enn en lignende funksjon i LiClipse. Når du starter en app, får du et utvalg av profiler som du kan bruke på programmet. Du kan deaktivere profilvelgeren og hoppe rett i å kjøre en profil, men deaktivering kan bare gjøres på applikasjonsomfattende basis, ikke for et bestemt prosjekt. Jeg foretrekker LiClipses rullegardinmeny for verktøylinjen der du kan velge en gitt profil eller starte den sist brukte profilen med et klikk.

En virkelig fantastisk inkludering er en verktøykasse for vanlige uttrykk. Skriv inn et vanlig uttrykk i en rute i dette verktøyet, gi noen eksempeldata å bruke den på i en annen rute, og resultatene vises i en tredje. Verktøyet støtter også flere smaker av regex, inkludert Python, og viser deg til og med resultatene av operasjoner som samsvarer, deles og erstattes. Jeg sliter hele tiden med å lage arbeidseksempler, så dette verktøyet er en gave.

En annen nyttig funksjon utenom boksen er en katalog med vanlige kodebiter for Python. Klikk for eksempel på "gå", og redaktøren setter inn kjeleplatekoden for å bruke Pythons os.promenade funksjon for å krysse kataloger, en av funksjonene hvis syntaks og bruk jeg aldri kan huske på forhånd. Andre språk er også inkludert. For eksempel, hvis du trenger å skyve standardutgave-HTML til en Django-mal du lager, har Komodo deg dekket.

Standard Python-distribusjon kommer med støtte for SQLite ut av boksen. Komodo IDE utfyller dette ved å tilby en innebygd utforsker for SQLite-databaser. Det er som en nedkledd versjon av "arbeidsbenk" desktop-appene som er gitt for MySQL eller Microsoft SQL Server. Grensesnittet er klumpete og lite tiltalende, men det er perfekt egnet for rask og skitten inspeksjon eller flekkredigering av en database. Det er ikke ment å fungere som en fullverdig database-IDE.

Du finner mange andre nyttige funksjoner i Komodo, selv om de ikke spesifikt retter seg mot Python. Makroopptakeren lar deg spille inn og spille av vanlige handlinger, selv om det ikke ser ut til å ta opp noen typer handlinger, for eksempel å velge hvilken appprofil som skal brukes når du starter en app. En annen funksjon tillater sanntidssamarbeid mellom Komodo-brukere, selv om de må registrere seg for kontoer med ActiveState for å få tilgang til tjenesten.

LiClipse

Eclipse IDE blir ofte kritisert som treg og overbelastet, men den brede språkstøtten og galleriet med utviklingstillegg gjør det til et kraftig og verdifullt verktøy. Python støttes i Eclipse via PyDev-tillegget. Hvis du bruker Eclipse til ingenting annet enn Python-utvikling, er det best å ta LiClipse. (Gjennom denne anmeldelsen vil jeg bruke LiClipse som stenografi for funksjonene som tilbys av LiClipse og PyDev sammen.)

LiClipse er en ompakking av Eclipse med PyDev, sammen med en rekke andre Eclipse-komponenter som skal forbedre brukeropplevelsen. Når den lanseres, ser og oppfører LiClipse seg som den vanlige utgaven av Eclipse, og sperrer ikke LiClipse-merkevaren og ikonene, så erfarne Eclipse-brukere bør ikke ha store problemer med å konfigurere arbeidsområdet etter eget ønske. Hvis du er ikke erfaring med Eclipse, vil du trenge litt tid for å lære hvordan Eclipse's arbeidsområde fungerer (dette aspektet av Eclipse blir rutinemessig kritisert). Sånn sett er LiClipse best for folk som allerede er komfortable med Eclipse, kanskje fra å jobbe i det gjennom et annet språk.

PoengkortEvne (30%) Opptreden (10%) Brukervennlighet (20%) Dokumentasjon (20%) Tillegg (20%) Total poengsum (100%)
IDLE 3.5.167875 6.5
Komodo IDE 10.1.188788 7.8
LiClipse 3.197789 8.2
PyCharm 2016.2.398988 8.5
Spyder 3.0.077776 6.8
Python Tools 2.2 for Visual Studio 201598799 8.5