Programování

Recenze: 6 IDE Pythonu jde na podložku

Ze všech metrik, které můžete použít k měření popularity a úspěchu jazyka, je jedním faktorem spolehlivosti počet dostupných vývojových prostředí. Nárůst popularity Pythonu za posledních několik let s sebou přinesl silnou vlnu podpory IDE s nástroji zaměřenými jak na běžného programátora, tak na ty, kteří používají Python pro úkoly jako vědecká práce a analytické programování.

Těchto šest IDE s podporou Pythonu pokrývá škálu případů použití. Některé jsou vícejazyčné IDE, které mají podporu Pythonu prostřednictvím doplňku nebo přebalení jiného produktu s příponami specifickými pro Python. Každá výhoda pro mírně odlišné publikum vývojáře Pythonu, i když mnozí se snaží být užiteční jako univerzální řešení.

Značný počet IDE dnes jsou rámce vybavené pluginy pro konkrétní jazyky a úkoly, spíše než aplikace psané zevnitř ven, aby podporovaly vývoj v daném jazyce. Za tímto účelem může být váš výběr IDE určen podle toho, zda máte nebo nemáte zkušenosti s jiným IDE ze stejné rodiny.

Související video: Proč Python usnadňuje programování

Pro ty, kteří takové zkušenosti nemají, je PyCharm jedním z nejlepších míst, kde začít. Je přátelský k nováčkům, ale není omezený v sadě funkcí. Ve skutečnosti to sportuje některé z nejužitečnějších funkcí mezi všemi IDE zde profilovanými. Mnoho z těchto funkcí je k dispozici pouze ve verzi produktu za úplatu, ale v bezplatné verzi je spousta, která pomůže začínajícímu vývojáři začít.

LiClipse a Python Tools for Visual Studio (PTVS) jsou dobrou volbou pro vývojáře, kteří jsou již dobře obeznámeni s Eclipse a Microsoft Visual Studio. Obě jsou plnohodnotná vývojová prostředí - tak plnohodnotná, jak se chystáte najít - která docela dobře integrují Python. Jsou to však také rozlehlé, komplexní aplikace, které přicházejí se spoustou kognitivních režijních nákladů. Pokud jste si již osvojili kterýkoli z nich, zjistíte, že je skvělou volbou pro práci v Pythonu.

Vtělení Pythonu ActiveState's Komodo IDE je přirozené pro ty, kteří již používali Komodo IDE pro nějaký jiný jazyk, a má jedinečné vlastnosti (jako je vyhodnocovač regulárních výrazů), které by měly rozšířit jeho přitažlivost. Komodo si zaslouží bližší pohled od nováčků i odborníků.

Spyder je nejvhodnější pro práci s IPythonem nebo jinými vědecko-výpočetními nástroji v distribucích, jako je Anaconda, spíše než jako vývojová platforma pro Python obecně. Nakonec je IDLE nejlépe vyhrazeno pro rychlé a špinavé skriptování, a dokonce i v tomto počtu může trvat zadní sedadlo samostatného editoru kódu s pluginem syntaxe Pythonu. To znamená, že IDLE je vždy tam, kde to potřebujete.

LÍNÝ

IDLE, vývojové prostředí, které je součástí většiny instalací Pythonu, lze považovat za výchozí IDE Pythonu. IDLE však v žádném případě nenahrazuje plnohodnotné IDE; je to spíš jako efektní editor souborů. Přesto IDLE zůstává jednou z výchozích možností pro vývojáře Pythonu, aby se dostali do jazyka, a s každým vydáním Pythonu se to postupně zlepšovalo, zejména s Pythonem 3.5. (Zajímavou diskusi o nedávných snahách o zlepšení IDLE najdete na této stránce.)

IDLE je postaveno výhradně na komponentách dodávaných s výchozí instalací Pythonu. Kromě samotného tlumočníka CPython to zahrnuje sadu nástrojů rozhraní Tkinter. Jeden přínos budování IDLE tímto způsobem: Běží napříč platformami s konzistentní sadou chování. Nevýhodou je, že rozhraní může být strašně pomalé. Například tisk velkého množství textu ze skriptu do konzoly je o mnoho řádů pomalejší, než když je skript spuštěn přímo z příkazového řádku.

IDLE má několik okamžitých vymožeností. Využívá integrovanou smyčku REPL (read-eval-print loop) nebo interaktivní konzolu pro Python. Ve skutečnosti je tento interaktivní shell první položkou prezentovanou uživateli při spuštění IDLE, spíše než prázdný editor. IDLE také obsahuje několik nástrojů nalezených v jiných IDE, jako je poskytování návrhů klíčových slov nebo proměnných při stisknutí Ctrl-Space a integrovaný debugger. Implementace většiny těchto funkcí jsou ale primitivní ve srovnání s jinými IDE a skryty omezeným výběrem komponent uživatelského rozhraní od Tkintera. A kolekce doplňků třetích stran, které jsou k dispozici pro IDLE (jedním z takových projektů je IdleX), není zdaleka tak bohatá jako u jiných IDE.

Stručně řečeno, IDLE je nejlepší pro dva scénáře. První je, když chcete hacknout rychlý skript Pythonu a potřebujete k tomu předem nakonfigurované prostředí. Druhá je pro začátečníky, kteří si právě začínají lámat nohy. I začátečníci budou muset rychle absolvovat robustnější variantu.

Spyder

Spyder je zkratka pro „Scientific PYthon Development EnviRonment“. Je určen k použití jako pracovní plocha pro vědecké výpočty s Pythonem, což se odráží v sadě funkcí, balení a celkovém chování IDE. Spyder má užitečné funkce pro obecný vývoj Pythonu, ale pokud nepracujete hlavně s IPython a vědeckými výpočetními balíčky, bude vám pravděpodobně lépe s jiným IDE.

Největším důvodem nepoužívat Spyder jako univerzální vývojové prostředí Pythonu není sada funkcí, ale proces instalace. Spyder není dodáván jako samostatný spustitelný soubor způsobem jako produkt jako Visual Studio nebo PyCharm. Místo toho je nainstalován jako balíček Pythonu. Nejjednodušší cestou ke Spyderu je instalace distribuce Pythonu, která je dodávána s předinstalovanou aplikací, jako je Anaconda od Continuum Analytics.

1. K dispozici jako rozšíření, ale podporuje pouze kontrolu syntaxe. 2. K dispozici jako doplněk Eclipse. 3. K dispozici v komerční verzi. 4. Viz pokyny k integraci. 5. Používá systémy pro správu verzí nainstalované na hostiteli.
 LÍNÝKomodoLiClipsePyCharmPTVSSpyder
Podpora pro CythonNeAno (1)NeAno (3)NeNe
Řízení verzíNeAnoAnoAnoAnoAno (5)
Grafický debuggerNeAnoAnoAnoAnoNe
Podpora IPythonNeNeNeAnoAno (4)Ano
MakraNeAnoAno (2)Ano (2)AnoNe
Několik tlumočníkůNeAnoAnoAnoAnoAno
RefaktorováníNeAnoAnoAnoAnoNe
Integrace databázeNeAnoAno (2)Ano (3)AnoNe
HTML / CSS / JavaScriptNeAnoAnoAnoAno (3)Ne

Spyder zahrnuje IPython, který nahrazuje konvenční konzolu Pythonu. Když zadáte příkazy do IPythonu, výsledky lze interaktivně prozkoumat. Každý příkaz lze považovat za „buňku“ nebo za segment kódu, který může mít výstup uložený a seřazený.

Spyder k tomu přidává integraci chování buněk do svého editoru kódu. Pokud vložíte speciálně naformátované komentáře do libovolného skriptu Pythonu, můžete jej rozdělit do buněk a tyto buňky spustit v rozhraní IPython v libovolném pořadí. Tímto způsobem je snadné použít Spyder k prototypování buněk pro pozdější umístění do notebooku IPython.

K ladění používá Spyder zabudovaný Pdb debugger Pythonu. Rozhraní příkazového řádku pro Pdb je daleko od sofistikovanějších grafických debuggerů nalezených v PyCharm nebo LiClipse, i když můžete nainstalovat grafický debugger Winpdb jako volitelný doplněk. Bohužel nemůžete použít Winpdb s Pythonem 3, protože má závislosti na balíčcích, které jsou stále k dispozici pouze v Pythonu 2 (konkrétně wxPython). Za tímto účelem bude většina lidí uváznuta na Pdb.

Spyder je také omezený ve srovnání s jinými IDE ve své integraci se systémy pro správu verzí jako Git a Mercurial. Pokud pracujete v inicializovaném úložišti projektu, budou soubory v tomto projektu zobrazovat položky kontextové nabídky úložiště pravým tlačítkem. To znamená, že přímo ve Spyderu nejsou zabudovány žádné mechanismy řízení verzí; musíte mít nainstalovanou příslušnou aplikaci pro správu verzí na systémové úrovni a její spustitelné soubory jsou k dispozici v systémové cestě. Spyder do svého uživatelského rozhraní nezahrnuje ani nástroje pro správu úložišť. Tyto nedostatky nejsou tak špatné, pokud již máte ve zvyku spravovat úložiště sami, ale pokud nejsou, představují další překážky.

Spyder má užitečné funkce pro obecný vývoj Pythonu. Okamžitě mě zaujal panel proměnných průzkumníků v rozhraní Spydera. Při zadávání příkazů do IPythonu se tam zaznamenávají všechny vytvořené proměnné, které lze interaktivně prozkoumávat. Dalším užitečným nástrojem je User Module Deleter. Povolte to a tlumočník Pythonu znovu načte všechny moduly od začátku, když provede skript Pythonu. Tímto způsobem lze jakékoli změny provedené v kódu modulu použít na spuštěný program, aniž byste museli restartovat celou aplikaci.

ActiveState Komodo IDE

Řada IDE produktů ActiveState zahrnuje verze pro téměř všechny hlavní jazyky. Přístup společnosti k tomu se trochu podobá tomu, jak LiClipse funguje: Vezměte si základní produkt (v tomto případě Komodo IDE) a vybavte jej doplňky pro vývoj Pythonu.

Komodo je nejvhodnější pro ty, kteří již znají ztělesnění Komodo pro jiné jazyky. Lidé s takovými zkušenostmi pod opasky nebudou mít žádné potíže s ponořením do produktu Python. Pokud přicházíte v chladu, stojí za zmínku některé vtipy uživatelského rozhraní. Například lišta nabídek aplikace není ve výchozím nastavení vystavena; musíte kliknout na nabídku hamburgerů vpravo nahoře nebo klepnout na klávesu Alt, aby se zobrazila. Má to udržovat věci čisté a jednoduché, ale pro některé chutě to může být příliš minimalistické.

Na druhou stranu jsou některé možnosti rozhraní okamžitě přitažlivé. Obzvláště se mi líbila „minimapa“, zmenšený náhled kódu v editoru, který vám umožní skočit na první pohled do jakékoli části souboru, který upravujete. LiClipse má podobnou funkci, ale s implementací Komodo se snáze pracuje.

Většina IDE v Pythonu je vybavena kontrolami syntaxe specifickými pro Python nebo linkováním kódu. Komodo IDE má vše, ale je také navrženo pro podporu verzí 2 a 3 jazyka současně. Pokud chcete například spustit prostředí Pythonu a máte v systémové cestě k dispozici tlumočníky pro obě verze Pythonu, můžete si explicitně vybrat kteroukoli verzi. Často jsem potřeboval spustit rychlé testy chování daného příkazu v Pythonu 2 a Pythonu 3 vedle sebe, a to je šikovný způsob, jak to udělat.

Komodo vám poskytuje možnost použít pro aplikaci více konfigurací spuštění nebo ladění, ale je o něco méně flexibilní než podobná funkce v LiClipse. Když spustíte aplikaci, budete mít na výběr z profilů, které budou použity v programu. Můžete deaktivovat výběr profilů a přejít přímo na spuštění profilu, ale deaktivaci lze provést pouze na základě celé aplikace, nikoli pro konkrétní projekt. Dávám přednost rozevírací nabídce panelu nástrojů LiClipse, ze které můžete vybrat daný profil nebo kliknutím spustit naposledy použitý profil.

Jedním skutečně úžasným začleněním je sada nástrojů pro regulární výrazy. Do jednoho podokna tohoto nástroje zadejte regulární výraz, ve druhém podokně zadejte některá ukázková data, která se mají použít, a výsledky se zobrazí ve třetím. Nástroj také podporuje více příchutí regexu, včetně Pythonu, a dokonce vám ukáže výsledky operací shody, rozdělení a nahrazení. Po celou dobu bojuji s tvorbou pracovních regexů, takže tento nástroj je dar z nebes.

Další užitečnou funkcí ihned po vybalení je katalog běžných fragmentů kódu pro Python. Klikněte například na „chůze“ a editor vloží standardní kód pro použití Pythonu os. procházka funkce pro procházení adresářů, jedna z funkcí, jejichž syntaxi a použití si nikdy nepamatuji. Zahrnuty jsou i další jazyky. Například pokud potřebujete vložit standardní vydání HTML do šablony Django, kterou připravujete, Komodo vás pokryje.

Výchozí distribuce Pythonu je dodávána s podporou SQLite po vybalení z krabice. Komodo IDE to doplňuje tím, že poskytuje integrovaný průzkumník pro databáze SQLite. Je to něco jako odříznutá verze desktopových aplikací „workbench“ poskytovaných pro MySQL nebo Microsoft SQL Server. Rozhraní je neohrabané a lákavé, ale je naprosto vhodné pro rychlou a špinavou kontrolu nebo okamžité úpravy databáze. Není zamýšleno jako plnohodnotné IDE databáze.

V Komodo najdete mnoho dalších užitečných funkcí, i když konkrétně necílí na Python. Makro rekordér umožňuje zaznamenávat a přehrávat běžné akce, ačkoli se nezdá, že by zaznamenával některé typy akcí, jako je výběr profilu aplikace, který se má použít při spuštění aplikace. Další funkce umožňuje spolupráci mezi uživateli Komodo v reálném čase, i když se pro přístup ke službě budou muset přihlásit k účtům pomocí ActiveState.

LiClipse

Eclipse IDE je často kritizováno jako pomalé a přetížené, ale jeho široká jazyková podpora a galerie vývojových doplňků z něj činí silný a cenný nástroj. Python je v Eclipse podporován prostřednictvím doplňku PyDev. Pokud Eclipse nepoužíváte k ničemu jinému než k vývoji Pythonu, nejlepší je sehnat LiClipse. (V této recenzi budu LiClipse používat jako zkratku pro balíček funkcí poskytovaných LiClipse a PyDev společně.)

LiClipse je přebalení Eclipse s PyDev, spolu s řadou dalších komponent Eclipse, které mají zlepšit uživatelský komfort. Po spuštění LiClipse vypadá a chová se podobně jako běžné vydání Eclipse, kromě značky a ikon LiClipse, takže zkušení uživatelé Eclipse by neměli mít velké potíže s konfigurací pracovního prostoru podle svých představ. Pokud jsi ne zkušenosti s Eclipse, budete potřebovat nějaký čas, abyste se naučili, jak funguje pracovní prostor Eclipse (tento aspekt Eclipse je rutinně kritizován). V tomto smyslu je LiClipse nejlepší pro lidi, kterým Eclipse již vyhovuje, třeba když v něm budou pracovat v jiném jazyce.

ScorecardSchopnost (30%) Výkon (10%) Snadnost použití (20%) Dokumentace (20%) Doplňky (20%) Celkové skóre (100%)
NEČINNOST 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 pro Visual Studio 201598799 8.5