Programmering

Anmeldelse: 6 Python IDE'er går til måtten

Af alle de målinger, du kan bruge til at måle et sprogs popularitet og succes, er en sikker faktor det antal udviklingsmiljøer, der er tilgængelige for det. Pythons stigning i popularitet gennem de sidste mange år har medført en stærk bølge af IDE-support med værktøjer rettet mod både den generelle programmør og dem, der bruger Python til opgaver som videnskabeligt arbejde og analytisk programmering.

Disse seks IDE'er med Python-support dækker omfanget af brugssager. Nogle er flersprogede IDE'er, der har Python-understøttelse gennem en tilføjelse eller ompakning af et andet produkt med Python-specifikke udvidelser. Hver gavner et lidt andet publikum af Python-udvikler, selvom mange stræber efter at være nyttige som universelle løsninger.

Et stort antal af IDE'erne i dag er rammer udstyret med plugins til bestemte sprog og opgaver, snarere end apps skrevet indefra og ud for at fremme udvikling på et givet sprog. Med henblik herpå kan dit valg af IDE bestemmes af, om du har erfaring med en anden IDE fra samme familie eller ej.

Relateret video: Hvorfor Python gør programmering let

For dem der ikke har en sådan erfaring, er PyCharm et af de bedste steder at starte. Det er venligt for nybegyndere, men ikke fastgjort i dets funktionssæt. Faktisk har det nogle af de mest nyttige funktioner blandt alle de IDE'er, der er profileret her. Mange af disse funktioner er kun tilgængelige i betalingsversionen af ​​produktet, men der er masser i den gratis version, der hjælper en nyudviklet udvikler med at komme i gang.

LiClipse og Python Tools for Visual Studio (PTVS) er gode valg for udviklere, der allerede er fortrolige med henholdsvis Eclipse og Microsoft Visual Studio. Begge er fuldblæste udviklingsmiljøer - så fuldblæst som du vil finde - der integrerer Python ganske pænt. De er dog også sprudlende, komplekse applikationer, der kommer med en masse kognitive omkostninger. Hvis du allerede har mestret nogen af ​​dem, finder du det et godt valg til Python-arbejde.

Python-inkarnationen af ​​ActiveStates Komodo IDE er en naturlig for dem, der allerede har brugt Komodo IDE til et andet sprog, og den har unikke funktioner (som evaluatoren for regulære udtryk), der burde udvide sin appel. Komodo fortjener et tæt kig fra både begyndere og eksperter.

Spyder er bedst egnet til at arbejde med IPython eller andre videnskabelige computerværktøjer i distributioner som Anaconda, snarere end som en udviklingsplatform for Python generelt. Endelig er IDLE bedst reserveret til hurtig og snavset scripting, og selv i den forbindelse kan det tage et bagsæde til en enkeltstående kodeditor med et Python-syntaks-plugin. Når det er sagt, er IDLE altid der, når du har brug for det.

LEDIG

IDLE, udviklingsmiljøet, der er inkluderet i de fleste installationer af Python, kan betragtes som standard Python IDE. Imidlertid er IDLE på ingen måde en erstatning for en fuldblæst IDE; det er mere som en fancy fileditor. Alligevel forbliver IDLE en af ​​standardindstillingerne for Python-udviklere for at få et ben op med sproget, og det er forbedret trinvist med hver udgivelse af Python, især med Python 3.5. (Se denne side for interessant diskussion af den nylige indsats for at forbedre IDLE.)

IDLE er bygget udelukkende med komponenter, der leveres med en standardinstallation af Python. Bortset fra selve CPython-tolken inkluderer dette Tkinter-interface-værktøjssættet. En velsignelse ved at opbygge IDLE på denne måde: Det kører på tværs af platforme med et konsekvent sæt adfærd. Som en ulempe kan grænsefladen være frygtelig langsom. Udskrivning af store mængder tekst fra et script i konsollen er f.eks. Mange størrelsesordener langsommere, end hvis scriptet køres direkte fra kommandolinjen.

IDLE har et par øjeblikkelige bekvemmeligheder. Det har en indbygget read-eval-print loop (REPL) eller interaktiv konsol til Python. Faktisk er denne interaktive shell det første element, der præsenteres for brugeren, når IDLE startes, snarere end en tom editor. IDLE inkluderer også et par værktøjer, der findes i andre IDE'er, såsom at give forslag til nøgleord eller variabler, når du rammer Ctrl-Space, og en integreret debugger. Men implementeringerne for de fleste af disse funktioner er primitive sammenlignet med andre IDE'er og skjult af Tkinter's begrænsede udvalg af UI-komponenter. Og samlingen af ​​tredjeparts-tilføjelsesprogrammer, der er tilgængelige for IDLE (et sådant projekt er IdleX), er ikke så tæt som du finder med andre IDE'er.

Alt i alt er IDLE bedst til to scenarier. Den første er, når du vil hacke et hurtigt Python-script sammen, og du har brug for et forudkonfigureret miljø for at gøre det. Det andet er for begyndere, der lige får benene. Selv begyndere bliver hurtigt nødt til at opgradere til en mere robust mulighed.

Spyder

Spyder er en forkortelse for "Scientific PYthon Development EnviRonment." Det er beregnet til brug som en arbejdsbænk til videnskabelig computing med Python, og det afspejles i funktionssættet, emballagen og IDE's samlede opførsel. Spyder har nyttige funktioner til generel Python-udvikling, men medmindre du hovedsagelig arbejder med IPython og videnskabelige databehandlingspakker, er du sandsynligvis bedre stillet med en anden IDE.

Den største grund til ikke at bruge Spyder som et Python-udviklingsmiljø til almindelige formål er ikke funktionssættet, men installationsprocessen. Spyder leveres ikke som en enkeltstående eksekverbar måde som et produkt som Visual Studio eller PyCharm. I stedet installeres den som en Python-pakke. Din nemmeste vej til Spyder er at installere en Python-distribution, der følger med den forudindlæst, såsom Continuum Analytics's Anaconda.

1. Fås som udvidelse, men understøtter kun syntakskontrol. 2. Fås som Eclipse-tilføjelse. 3. Fås i kommerciel version. 4. Se integrationsinstruktioner. 5. Bruger versionskontrolsystemer installeret på værten.
 LEDIGKomodoLiClipsePyCharmPTVSSpyder
Cython supportIngenJa (1)IngenJa (3)IngenIngen
VersionskontrolIngenJaJaJaJaJa (5)
Grafisk debuggerIngenJaJaJaJaIngen
IPython supportIngenIngenIngenJaJa (4)Ja
MakroerIngenJaJa (2)Ja (2)JaIngen
Flere tolkeIngenJaJaJaJaJa
RefactoringIngenJaJaJaJaIngen
Integration af databaseIngenJaJa (2)Ja (3)JaIngen
HTML / CSS / JavaScriptIngenJaJaJaJa (3)Ingen

Spyder inkluderer IPython, som er en erstatning for den konventionelle Python-konsol. Når du skriver kommandoer i IPython, kan resultaterne udforskes interaktivt. Hver kommando kan behandles som en "celle" eller et segment af kode, der kan have sin output gemt og sorteret.

Spyder tilføjer dette ved at integrere celleopførsel i sin kodeeditor. Hvis du indsætter specielt formaterede kommentarer i et hvilket som helst Python-script, kan du opdele det i celler og udføre disse celler i IPython-grænsefladen i enhver rækkefølge. På denne måde er det let at bruge Spyder til at prototype celler til placering i en IPython notesbog senere.

Til debugging bruger Spyder Pythons indbyggede Pdb-debugger. Kommandolinjegrænsefladen til Pdb er langt fra de mere sofistikerede grafiske fejlfindere, der findes i PyCharm eller LiClipse, selvom du kan installere Winpdb grafisk debugger som en valgfri tilføjelse. Desværre kan du ikke bruge Winpdb med Python 3, da det har afhængigheder af pakker, der stadig kun er tilgængelige i Python 2 (specifikt wxPython). Til dette formål vil de fleste mennesker sidde fast med Pdb.

Spyder er også begrænset sammenlignet med andre IDE'er i sin integration med versionskontrolsystemer som Git og Mercurial. Hvis du arbejder i et initialiseret projektlager, viser filer i projektet højreklik på genvejsmenuelementer til lageret. Når det er sagt, er der ingen versionskontrolmekanismer indbygget direkte i Spyder; skal du have det relevante versionskontrolprogram allerede installeret på systemniveau med eksekverbare filer tilgængelige fra systemstien. Spyder inkluderer heller ikke værktøjer til styring af arkiver i brugergrænsefladen. Disse mangler er ikke så dårlige, hvis du allerede har for vane at administrere arkiver selv, men de udgør yderligere forhindringer, hvis du ikke er det.

Spyder har nyttige funktioner til generel Python-udvikling. En der straks fangede mit øje er den variable opdagelsesrude i Spyder's interface. Når du skriver kommandoer i IPython, logges alle oprettede variabler der og kan udforskes interaktivt. Et andet nyttigt værktøj er User Module Deleter. Aktivér det, og Python-tolken genindlæser alle moduler fra bunden, når den udfører et Python-script. På denne måde kan ændringer foretaget i modulets kode anvendes på et kørende program uden at skulle genstarte hele applikationen.

ActiveState Komodo IDE

ActiveStates linje med IDE-produkter inkluderer versioner til næsten alle større sprog. Virksomhedens tilgang til dette ligner lidt, hvordan LiClipse fungerer: Tag basisproduktet (i dette tilfælde Komodo IDE) og udstyr det med tilføjelser til Python-udvikling.

Komodo er bedst egnet til dem, der allerede er fortrolige med inkodationer af Komodo til andre sprog. Mennesker med en sådan erfaring under bæltet har ingen problemer med at dykke ned i Python-produktet. Hvis du kommer forkølet, er der nogle UI-egenskaber, der er værd at bemærke. For eksempel er appmenulinjen ikke eksponeret som standard; du skal klikke på hamburger-menuen øverst til højre eller trykke på Alt-tasten for at vise den. Det er beregnet til at holde tingene rene og enkle, men kan være for minimalistiske til nogle smag.

På den anden side er nogle af grænsefladesvalgene straks tiltalende. Jeg kunne især godt lide "minimap", en zoomet ud forhåndsvisning af koden i editoren, der giver dig mulighed for hurtigt at springe til en hvilken som helst del af filen, du redigerer. LiClipse har en lignende funktion, men Komodos implementering er lettere at arbejde med.

De fleste Python IDE'er er udstyret med lignende Python-specifik syntaks kontrol eller kode linting. Komodo IDE har alt det, men det er også designet til at understøtte version 2 og 3 af sproget på samme tid. Hvis du f.eks. Vil starte en Python-skal, og du har tolke til begge versioner af Python tilgængelige i din systemsti, kan du eksplicit vælge en af ​​versionerne. Jeg har ofte haft brug for at køre hurtige tests af adfærdene i en given erklæring i Python 2 og Python 3 side om side, og dette er en praktisk måde at gøre det på.

Komodo giver dig mulighed for at anvende flere kørsels- eller fejlretningskonfigurationer for en applikation, men det er lidt mindre fleksibelt end en lignende funktion i LiClipse. Når du starter en app, får du et valg af profiler, der skal anvendes på programmet. Du kan deaktivere profilvælgeren og springe direkte i at køre en profil, men deaktivering kan kun udføres på applikationsomfang, ikke for et bestemt projekt. Jeg foretrækker LiClipses rullemenu på værktøjslinjen, hvorfra du kan vælge en given profil eller starte den senest anvendte profil med et klik.

En virkelig vidunderlig inklusion er et værktøjssæt til regulært udtryk. Indtast et regulært udtryk i en rude i dette værktøj, angiv nogle eksempeldata, der skal anvendes på i en anden rude, og resultaterne vises i en tredje. Værktøjet understøtter også flere varianter af regex, inklusive Python, og viser dig endda resultaterne af match, split og udskift operationer. Jeg kæmper hele tiden med at lave regexer, så dette værktøj er en gave.

En anden nyttig out-of-the-box-funktion er et katalog over almindelige kodestykker til Python. Klik på "gå" for eksempel, og redaktøren indsætter kedelpladekoden for at bruge Pythons os. gåtur funktion til at krydse mapper, en af ​​de funktioner, hvis syntaks og brug jeg aldrig kan huske direkte. Andre sprog er også inkluderet. For eksempel, hvis du har brug for at skubbe HTML med standardudgave til en Django-skabelon, du laver mad, har Komodo dig dækket.

Standard Python-distributionen leveres med understøttelse af SQLite ud af boksen. Komodo IDE supplerer dette ved at levere en indbygget explorer til SQLite-databaser. Det er som en fjernet version af "workbench" desktop-apps, der leveres til MySQL eller Microsoft SQL Server. Interfacet er klodset og ikke tiltalende, men det er perfekt egnet til hurtig og snavset inspektion eller spotredigering af en database. Det er ikke beregnet til at fungere som en fuldstændig database-IDE.

Du finder mange andre nyttige funktioner i Komodo, selvom de ikke specifikt er målrettet mod Python. Makrooptageren giver dig mulighed for at optage og afspille almindelige handlinger, selvom det ikke ser ud til at optage nogle typer handlinger, såsom at vælge hvilken appprofil, der skal bruges, når du starter en app. En anden funktion tillader realtidssamarbejde mellem Komodo-brugere, selvom de bliver nødt til at tilmelde sig konti hos ActiveState for at få adgang til tjenesten.

LiClipse

Eclipse IDE kritiseres ofte som langsom og overbelastet, men dens brede sprogstøtte og galleri med udviklingsudvidelser gør det til et kraftfuldt og værdifuldt værktøj. Python understøttes i Eclipse via PyDev-tilføjelsen. Hvis du bruger Eclipse til intet andet end Python-udvikling, er dit bedste valg at få fat i LiClipse. (I løbet af denne gennemgang bruger jeg LiClipse som stenografi for det bundt af funktioner, der leveres af LiClipse og PyDev sammen.)

LiClipse er en ompakning af Eclipse med PyDev sammen med en række andre Eclipse-komponenter, der skal forbedre brugeroplevelsen. Når den lanceres, ser og opfører LiClipse sig meget som den almindelige udgave af Eclipse, uden at LiClipse-branding og -ikoner udelukkes, så erfarne Eclipse-brugere bør ikke have meget problemer med at konfigurere arbejdsområdet efter deres smag. Hvis du er ikke erfaret med Eclipse, skal du bruge lidt tid på at lære, hvordan Eclipse's arbejdsområde fungerer (dette aspekt af Eclipse kritiseres rutinemæssigt). I den forstand er LiClipse bedst for folk, der allerede er fortrolige med Eclipse, måske fra at arbejde i det gennem et andet sprog.

ScorecardEvne (30%) Ydeevne (10%) Brugervenlighed (20%) Dokumentation (20%) Tilføjelser (20%) Samlet score (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 til Visual Studio 201598799 8.5
$config[zx-auto] not found$config[zx-overlay] not found