Ve čtvrté části seriálu o integrovaných vývojových prostředích, která jsou programátorům dostupná v systému Fedora, se budeme věnovat popisu IDE vhodných pro tvorbu a ladění aplikací napsaných v Pythonu. Pro vývojáře používající tento programovací jazyk existuje ve Fedoře hned několik specializovaných integrovaných vývojových prostředí a taktéž i větší množství univerzálních IDE, která se s využitím zásuvných modulů (pluginů) mohou Pythonu relativně snadno přizpůsobit.

Integrovaná vývojová prostředí ve Fedoře (4.díl)

V předchozích třech částech seriálu o integrovaných vývojových prostředích nabízených v systému Fedora jsme si popsali celou řadu integrovaných vývojových prostředí určených pro práci s běžnými (řekněme s trochou nadsázky „mainstreamovými“ jazyky). Některá z popisovaných IDE bylo možné s využitím pluginů rozšířit takovým způsobem, aby v nich byly podporovány další programovací jazyky, jiné IDE, především se jedná o prostředí nazvaná Code::Blocks a Qt Creator byly zaměřeny především na vývoj aplikací v programovacích jazycích C a C++.

Obrázek 1: První z dnes popsaných integrovaných vývojových prostředí se jmenuje IDLE.

Obrázek 1: První z dnes popsaných integrovaných vývojových prostředí se jmenuje IDLE.

V dnešním článku i v článku navazujícím se zaměříme především na ta integrovaná vývojová prostředí, která mohou být využita vývojáři pracujícími s oblíbeným a dnes již velmi rozšířeným programovacím jazykem Python. Kromě klasicky pojatých IDE typu Eric, Spyder či IDLE se dnes i v následujícím dílu budeme zabývat i univerzálními IDE s existujícím pluginem pro Python (zejména PyDev, zrychleně též Anjuta a Geany) a zmíníme se i o velmi zajímavých projektech nazvaných IPython a IPython Notebook, což jsou nástroje, které se sice běžnému IDE příliš nepodobají, ovšem nabízí podobnou (a někdy i větší) funkcionalitu.

Obrázek 2: V následující části tohoto seriálu si mj. popíšeme i nástroje nazvané IPython a IPython Notebook. Zatímco IPython využívá pro komunikaci s programátorem konzoli (terminál), je IPython Notebook založen na webovém rozhraní.

Obrázek 2: V následující části tohoto seriálu si mj. popíšeme i nástroje nazvané IPython a IPython Notebook. Zatímco IPython využívá pro komunikaci s programátorem konzoli (terminál), je IPython Notebook založen na webovém rozhraní.

Specializovaná IDE pro Python versus univerzální rozšiřitelná IDE

Při výběru vhodného integrovaného vývojového prostředí pro Python se vývojáři mohou rozhodovat mezi dvěma výše zmíněnými skupinami IDE. Na jedné straně stojí vývojová prostředí vytvořená speciálně pro Python, na straně druhé pak nalezneme vývojová prostředí univerzální, jež je však možné pro Python nakonfigurovat či rozšířit s využitím zásuvných modulů. Výběr konkrétního vývojového prostředí závisí na mnoha okolnostech a samozřejmě i na osobních preferencích uživatelů.

Obrázek 3: Ukázka některých možností specializovaného integrovaného vývojového prostředí Eric určeného pro jazyky Python a Ruby. Zde je konkrétně v pravé části screenshotu zobrazeno okno se seznamem breakpointů, z něhož je patrné, že jsou podporovány i breakpointy s podmínkou.

Obrázek 3: Ukázka některých možností specializovaného integrovaného vývojového prostředí Eric určeného pro jazyky Python a Ruby. Zde je konkrétně v pravé části screenshotu zobrazeno okno se seznamem breakpointů, z něhož je patrné, že jsou podporovány i breakpointy s podmínkou.

Někteří vývojáři dávají například přednost nástrojům typu Eclipse (zde především rozšíření PyDev jakožto modulu pro vývoj v Pythonu), u nichž se za velké množství funkcí platí zvýšenými nároky na operační paměť a na výpočetní výkon mikroprocesoru, další vývojáři se spíše drží tradiční filozofie Unixu a dávají přednost jednoúčelovým nástrojům, další vývojáři preferují použití terminálu/konzole popř. IDE s webovým rozhraním atd. Z tohoto důvodu většinou není možné snadno a jednoznačně rozhodnout, které z dále popsaných integrovaných vývojových prostředí je pro Python nejvhodnější pro všechny uživatele a ve všech situacích.

Obrázek 4: Vývojové prostředí PyDev je založeno na již popsaném univerzálním prostředí Eclipse.

Obrázek 4: Vývojové prostředí PyDev je založeno na již popsaném univerzálním prostředí Eclipse.

V první části tohoto článku si nejprve popíšeme specializovaná integrovaná vývojová prostředí pro Python. Jedná se především o IDLE, což je poněkud podceňované, přesto však poměrně výkonné vývojové prostředí a dále pak o plnohodnotné IDE nazvané Eric. Tato integrovaná vývojová prostředí mají tu výhodu, že jsou vytvářena přímo programátory používajícími Python jako svůj oblíbený programovací jazyk, takže lze očekávat, že tvůrci IDE budou mít stejné či alespoň velmi podobné požadavky jako vlastní uživatelé (IDLE dokonce spoluvyvíjel sám autor Pythonu: Guido van Rossum).

Obrázek 5: IDE Anjuta ve funkci integrovaného vývojového prostředí pro Python.

Obrázek 5: IDE Anjuta ve funkci integrovaného vývojového prostředí pro Python.

Z univerzálních IDE upravených či rozšířených pro potřeby programovacího jazyka Python stojí za zmínku především PyDev, tj. zásuvný modul pro Eclipse. Ovšem nesmíme zapomenout ani na již popsanou Anjutu a Geany – dnes si jen připomeneme, že i tato IDE lze s Pythonem relativně bez problému použít. V další části článku budou taktéž popsány projekty Spyder, IPython a IPython Notebook, jejichž princip práce je založen na velmi úzké obousměrné interakci programátora s interpretrem Pythonu. IPython Notebook je navíc nástroj kombinující možnosti IDE s poměrně mocným prezentačním webovým nástrojem.

Obrázek 6: Webové rozhraní nástroje nazvaného IPython Notebook v sobě spojuje interaktivní (částečně sdílené) vývojové prostředí s prezentačním webovým nástrojem.

Obrázek 6: Webové rozhraní nástroje nazvaného IPython Notebook v sobě spojuje interaktivní (částečně sdílené) vývojové prostředí s prezentačním webovým nástrojem.

IDLE

První integrované vývojové prostředí, které si dnes popíšeme, se jmenuje IDLE, neboli celým názvem Integrated DeveLopment Environment. Dalším významem tohoto názvu je odkaz na jméno herce Erica Idleho, který byl členem skupiny Monty Python’s Flying Circus. Na této aplikaci je zajímavý především fakt, že IDLE je (a to mnohdy bez vědomí uživatelů) nainstalováno na velkém množství počítačů, a to z toho důvodu, že se toto prostředí instaluje v balíčku nazvaném v systému Fedora „python-tools“ (viz screenshot číslo 7 umístěný pod tímto odstavcem), společně s několika dalšími užitečnými nástroji a knihovnami.

Obrázek 7: Integrované vývojové prostředí IDLE se v systému Fedora instaluje z balíčku nazvaného „python-tools“. Jak je z tohoto screenshotu patrné, nainstaluje se společně s prostředím IDLE i interpret programovacího jazyka Tcl a taktéž knihovny Tk a Tkinter. Žádné další závislosti není zapotřebí řešit, na rozdíl od dále popsaného IDE Eric, které závisí na knihovně Qt.

Obrázek 7: Integrované vývojové prostředí IDLE se v systému Fedora instaluje z balíčku nazvaného „python-tools“. Jak je z tohoto screenshotu patrné, nainstaluje se společně s prostředím IDLE i interpret programovacího jazyka Tcl a taktéž knihovny Tk a Tkinter. Žádné další závislosti není zapotřebí řešit, na rozdíl od dále popsaného IDE Eric, které závisí na knihovně Qt.

V tomto odstavci na chvíli odbočíme od popisu integrovaných vývojových prostředí pro systém Fedora. Pro některé čtenáře totiž může být užitečná i informace, že IDLE je součástí instalací Pythonu na systému Microsoft Windows. Toto prostředí nalezneme například v populárním instalačním balíčku Pythonu připraveném společností Active State (tento balíček se nazývá ActivePython, existují však i čistě open source varianty Pythonu pro zmiňovaný operační systém).

Obrázek 8: Prostředí IDLE ve variantě pro operační systémy Microsoft Windows; konkrétně se jedná o IDLE nainstalované v rámci ActivePythonu. Možnosti IDLE ve Windows jsou prakticky stejné jako v Linuxu.

Obrázek 8: Prostředí IDLE ve variantě pro operační systémy Microsoft Windows; konkrétně se jedná o IDLE nainstalované v rámci ActivePythonu. Možnosti IDLE ve Windows jsou prakticky stejné jako v Linuxu.

Jak již z výše uvedených informací vyplývá, jedná se v případě IDLE o multiplatformní integrované vývojové prostředí naprogramované čistě v Pythonu, přičemž multiplatformnost je zaručena mj. i tím, že IDLE využívá pro své grafické uživatelské rozhraní knihovnu (modul) nazvaný Tkinter zajišťující propojení programovacího jazyka Python s Tcl/Tk. Tcl je programovací jazyk navržený Johnem Ousterhoutem. Vrchol popularity tohoto jazyka nastal zhruba před patnácti lety, ovšem stále se používá a to mj. i díky existenci knihovny Tk pro tvorbu GUI. Modul Tkinter byl vytvořen Steenem Lumholtem a Guidem van Rossumem (autorem samotného Pythonu).

Obrázek 9: Dialog se základními informacemi o integrovaném vývojovém prostředí IDLE. Kromě aktuálně využívané verze Pythonu je zde zobrazena i verze knihovny Tk využívané knihovnou (modulem) Tkinter.

Obrázek 9: Dialog se základními informacemi o integrovaném vývojovém prostředí IDLE. Kromě aktuálně využívané verze Pythonu je zde zobrazena i verze knihovny Tk využívané knihovnou (modulem) Tkinter.

Integrované vývojové prostředí IDLE s velkou pravděpodobností nebude vyhovovat všem programátorům a to mj. i z toho důvodu, že se v něm používá poněkud jiná filozofie práce s GUI. Samotné grafické uživatelské rozhraní IDLE je totiž založeno na systému samostatných oken a nikoli na dnes asi nejvíce používaném přístupu s jedním oknem, v němž se kromě různých nástrojových lišt zobrazuje i strom projektu a jednotlivé zdrojové soubory jsou umístěny v záložkách (tabech).

Obrázek 10: Do prostředí IDLE je zabudované i doplňování názvů funkcí, metod a tříd.

Obrázek 10: Do prostředí IDLE je zabudované i doplňování názvů funkcí, metod a tříd.

V programátorském prostředí IDLE se setkáme především s oknem nazvaným Python Shell, v němž je možné zadávat příkazy, které jsou Pythonem ihned (interaktivně) zpracovány. Oproti výchozímu shellu jazyka Python (ten je většinou spouštěný v terminálu) je Python Shell vylepšen, například o automatické doplňování názvů tříd, funkcí či proměnných, zvýraznění syntaxe atd.

Obrázek 11: Okno Python Shellu.

Obrázek 11: Okno Python Shellu.

Kromě Python Shellu se v IDLE každý zdrojový soubor otevírá v samostatném okně (editoru), což s sebou přináší klady, ale i některé zápory ne nepodobné chování grafického editoru GIMP. Jedním z problémů je fakt, že se okna otevírají na nejvyšší úrovni desktopu, takže se mezi nimi poměrně obtížně přepíná, alespoň v případě použití těch správců oken, které neumožňují sdružování oken s využitím tabů (mezi správce oken, které tuto funkci mají, patří například známý Fluxbox).

Obrázek 12: Okno s editorem zdrojového kódu. V tomto okně je zobrazen kód jednoduché demonstrační aplikace, která nás bude provázet v následujících kapitolách i v navazující části tohoto seriálu.

Obrázek 12: Okno s editorem zdrojového kódu. V tomto okně je zobrazen kód jednoduché demonstrační aplikace, která nás bude provázet v následujících kapitolách i v navazující části tohoto seriálu.

Programátorský editor zabudovaný do integrovaného vývojového prostředí IDLE patří do skupiny spíše jednodušších editorů, i když v něm najdeme i funkci pro automatické doplňování, zobrazení „bublinové“ nápovědy k metodám a funkcím či automatické odsazování bloků kódu (což je v Pythonu velmi důležitá vlastnost). Programátoři zvyklí na používání maker, automatické skládání kódu (folding) či na automatický refaktoring však budou možnostmi editoru v IDLE spíše zklamáni.

Obrázek 13: Automatické doplňování a „bublinová“ nápověda.

Obrázek 13: Automatické doplňování a „bublinová“ nápověda.

Programátorský editor IDLE samozřejmě podporuje i zvýraznění syntaxe (což je dnes již vlastnost očekávaná ve všech typech IDE) a s editorem taktéž souvisí další typ okna – Class Browser. V Class Browseru se zobrazuje seznam všech tříd i funkcí/metod přítomných v jednom zdrojovém souboru, což částečně nahrazuje klasický stromový pohled na projekt – viz též screenshoty číslo 14 a 15. Class Browser kromě pasivního zobrazení tříd, funkcí a metod samozřejmě umožňuje i rychlý přechod na vybraný objekt.

Obrázek 14: Class Browser zobrazující strukturu zdrojového kódu (jediného modulu), v němž se vyskytují pouze funkce a nikoli třídy.

Obrázek 14: Class Browser zobrazující strukturu zdrojového kódu (jediného modulu), v němž se vyskytují pouze funkce a nikoli třídy.

Obrázek 15: Class Browser zobrazující strukturu zdrojového kódu, v němž se vyskytují i třídy.

Obrázek 15: Class Browser zobrazující strukturu zdrojového kódu, v němž se vyskytují i třídy.

V samostatných oknech se zobrazují i všechny další moduly nabízené integrovaným vývojovým prostředím IDLE. Například se jedná o debugger, který programátorům nabízí základní funkce společné všem moderním debuggerům – krokování laděnými aplikacemi po příkazech, vstup či naopak přeskočení volání funkce/metody, zobrazení globálních i lokálních proměnných, zobrazení zásobníku obsahujícího vstupní body volaných funkcí/metod atd.

Obrázek 16: Integrovaný debugger. V horní části okna je zobrazen zásobník volání, v části spodní pak lokální symboly. Pětice tlačítek slouží pro krokování, vstup do funkce, přeskočení volání funkce a výskok z funkce.

Obrázek 16: Integrovaný debugger. V horní části okna je zobrazen zásobník volání, v části spodní pak lokální symboly. Pětice tlačítek slouží pro krokování, vstup do funkce, přeskočení volání funkce a výskok z funkce.

Obrázek 17: Další screenshot integrovaného debuggeru.

Obrázek 17: Další screenshot integrovaného debuggeru.

Mnohé další funkce však v současné verzi IDLE nenajdeme – například propojení s nástroji pro správu verzí, nástroje pro refaktoring zdrojových kódů atd. Z tohoto hlediska lze IDLE považovat spíše za jednodušeji pojaté vývojové prostředí, což však nemusí být v některých situacích (výuka) bráno jako pouze záporná vlastnost. Minimalisticky je pojata i nápověda, která se skládá z jediného statického textového dokumentu.

Obrázek 18: Výběr fontu použitého v textovém editoru a nastavení způsobu odsazování textu v samostatném dialogu.

Obrázek 18: Výběr fontu použitého v textovém editoru a nastavení způsobu odsazování textu v samostatném dialogu.

Obrázek 19: Nastavení parametrů integrovaného vývojového prostředí IDLE v samostatném dialogu.

Obrázek 19: Nastavení parametrů integrovaného vývojového prostředí IDLE v samostatném dialogu.

Obrázek 20: Nápověda v integrovaném vývojovém prostředí IDLE je skutečně velmi jednoduchá, dokonce ani není podporováno vyhledávání (což je zajímavé, protože pro Tcl/Tk existuje komponenta/widget implementující jednoduchý prohlížeč HTML stránek, který by zde bylo možné využít).

Obrázek 20: Nápověda v integrovaném vývojovém prostředí IDLE je skutečně velmi jednoduchá, dokonce ani není podporováno vyhledávání (což je zajímavé, protože pro Tcl/Tk existuje komponenta/widget implementující jednoduchý prohlížeč HTML stránek, který by zde bylo možné využít).

Eric

Druhé integrované vývojové prostředí, s nímž se v dnešním článku podrobněji seznámíme, se jmenuje Eric. Tento název opět odkazuje na herce Erica Idleho ze skupiny Monty Python’s Flying Circus. Jedná se o vývojové prostředí určené převážné pro tvorbu aplikací v programovacím jazyce Python a taktéž Ruby, my se ovšem dnes budeme zabývat především funkcionalitou dostupnou pro vývojáře využívající Python. Možnosti Erica při práci s projekty v Pythonu a Ruby jsou totiž v některých ohledech odlišné, a to především kvůli tomu, že pro oba jazyky jsou dostupné jiné přídavné moduly – pluginy (základ prostředí – správce projektů a textový editor, je však shodný).

Obrázek 21: Instalace integrovaného vývojového prostředí Eric v systému Fedora 19. Kvůli tomu, že se jedná o první instalovanou aplikaci využívající knihovnu Qt, bude se společně s IDE Eric instalovat i několik desítek závislých balíčků.

Obrázek 21: Instalace integrovaného vývojového prostředí Eric v systému Fedora 19. Kvůli tomu, že se jedná o první instalovanou aplikaci využívající knihovnu Qt, bude se společně s IDE Eric instalovat i několik desítek závislých balíčků.

Podobně jako v případě výše popsaného vývojového prostředí IDLE je i Eric z velké části naprogramován v samotném Pythonu, z čehož lze usuzovat, že vývojáři Ericu budou velmi dobře rozumět požadavkům programátorů, kteří toto vývojové prostředí budou chtít při své práci používat. Ve zbylé části tohoto článku se zaměříme na popis Erica verze 4 (konkrétně 4.5.10 – viz též průběh instalace na obrázku 21 a 22 i dialog zobrazený na obrázku 23), využívající knihovnu Qt4. Tato verze integrovaného prostředí Eric je založena na Pythonu 2.x, což však samozřejmě neznamená, že by v této verzi nebylo možné vyvíjet aplikace v Pythonu 3.

Obrázek 22: Pokračování instalace integrovaného vývojového prostředí Eric do systému Fedora. Společně s IDE Eric se instalují i další závislé balíčky (většinou knihovny).

Obrázek 22: Pokračování instalace integrovaného vývojového prostředí Eric do systému Fedora. Společně s IDE Eric se instalují i další závislé balíčky (většinou knihovny).

Zatímco integrované vývojové prostředí IDLE využívalo pro svoje grafické uživatelské rozhraní knihovnu Tk, je v IDE Eric použita známá multiplatformní knihovna Qt, přičemž vazba mezi Pythonem a Qt je zajištěna s využitím modulu PyQt. V IDE Eric je taktéž využívána komponenta QScintilla, která je použita jak v integrovaném programátorském editoru (celý editor je realizován QScintillou a vazbami na okolní prostředí), tak i v několika dalších formulářích a dialozích. I přesto, že je Eric založen na knihovně Qt, je jeho integrace do výchozího desktopového prostředí Fedory – Gnome Shellu – velmi dobrá, o čemž ostatně svědčí i snímky obrazovky použité v tomto článku – ty vznikly ve Fedoře 19 se spuštěným Gnome Shellem.

Obrázek 23: Dialog se základními informacemi o integrovaném vývojovém prostředí Eric zobrazený ihned po instalaci tohoto IDE do systému Fedora 19.

Obrázek 23: Dialog se základními informacemi o integrovaném vývojovém prostředí Eric zobrazený ihned po instalaci tohoto IDE do systému Fedora 19.

Základem každého moderního integrovaného vývojového prostředí je správce projektů, programátorský editor, vazba na překladač či interpret podporovaného programovacího jazyka a v neposlední řadě pak i vazba na debugger, popř. existence vlastního integrovaného debuggeru. Správce projektů se samozřejmě v integrovaném vývojovém prostředí Eric nachází, přičemž ve výchozím nastavení GUI je jeho nástrojový panel umístěn v levé části okna (obrázek číslo 25). V tomto panelu je zobrazena klasická stromová struktura projektu, kterou můžeme znát i z dalších typů integrovaných vývojových prostředí.

Obrázek 24: Vytvoření nového projektu. Nejdůležitějším údajem, který je zde nutné vyplnit, je programovací jazyk použitý v projektu. Od tohoto nastavení se odvíjí i další možnosti, které Eric uživatelům nabídne ihned po vytvoření projektu.

Obrázek 24: Vytvoření nového projektu. Nejdůležitějším údajem, který je zde nutné vyplnit, je programovací jazyk použitý v projektu. Od tohoto nastavení se odvíjí i další možnosti, které Eric uživatelům nabídne ihned po vytvoření projektu.

Se správcem projektů jsou propojeny i další části integrovaného vývojového prostředí Eric, takže je například možné provádět vyhledání textu (či vyhledávání textu současně s jeho nahrazováním), a to v rámci celého projektu apod. U projektu lze kromě běžných operací (práce se seznamem zdrojových souborů, nastavení verze Pythonu pro projekt atd.) používat i takzvaný TODO list, tj. seznam, do něhož se integrují poznámky o těch částech projektu, které je nutné vylepšit či vůbec implementovat.

Obrázek 25: Správce projektů je implicitně zobrazen v levé části okna Erica. Největší část plochy okna je vyhrazena programátorskému editoru a ve spodní části můžeme vidět konzoli s běžícím interpretrem Pythonu.

Obrázek 25: Správce projektů je implicitně zobrazen v levé části okna Erica. Největší část plochy okna je vyhrazena programátorskému editoru a ve spodní části můžeme vidět konzoli s běžícím interpretrem Pythonu.

Samostatný popis si zaslouží programátorský editor integrovaný do IDE Eric, protože jeho možnosti jsou mnohem větší, než tomu bylo v případě poměrně omezeného editoru použitého ve výše popsaném prostředí IDLE. Editor v Ericovi je založen na již zmíněné komponentě QScintilla a nabízí vývojářům prakticky všechny základní i pokročilejší vlastnosti, které u programátorských editorů očekáváme.

Obrázek 26: Nastavení vlastností programátorského editoru je rozděleno do několika kategorií.

Obrázek 26: Nastavení vlastností programátorského editoru je rozděleno do několika kategorií.

Především se jedná o podporu zvýrazňování syntaxe, které je konfigurovatelné, což znamená, že kromě zvýraznění zdrojových kódů Pythonu a Ruby jsou k dispozici i pravidla pro několik desítek dalších typů textových souborů a další pravidla lze v případě nutnosti doinstalovat či si je napsat. Editor taktéž podporuje folding, tj. skrytí řádků s implementací funkcí/metod či skrytí těl bloků (například bloku uvnitř smyčky for). Samozřejmostí je taktéž podpora pro doplňování kódu, zobrazení bublinové nápovědy k vybraným symbolům či zvýraznění párových závorek.

Obrázek 27: Nastavit je samozřejmě možné i klávesové zkratky, a to nejenom pro programátorský editor, ale i pro další části integrovaného vývojového prostředí Eric.

Obrázek 27: Nastavit je samozřejmě možné i klávesové zkratky, a to nejenom pro programátorský editor, ale i pro další části integrovaného vývojového prostředí Eric.

Další nezbytnou součástí integrovaného vývojového prostředí Eric je debugger, který umožňuje ladění aplikací naprogramovaných v Pythonu, a to včetně aplikací používajících multithreading či aplikací využívajících knihovnu Tkinter (to bylo v případě IDLE poněkud problematické, protože samotné IDLE je napsáno s využitím Tkinteru). Breakpointy, tj. řádky, na nichž se má pozastavit běh aplikace, se samozřejmě nastavují přímo v programátorském editoru, což je ostatně patrné i ze screenshotů.

Obrázek 28: Ladění programů v integrovaném debuggeru. V levé části okna můžeme vidět nastavený breakpoint, v části pravé pak seznam lokálních symbolů a především záložky s dalšími formuláři.

Obrázek 28: Ladění programů v integrovaném debuggeru. V levé části okna můžeme vidět nastavený breakpoint, v části pravé pak seznam lokálních symbolů a především záložky s dalšími formuláři.

U breakpointů lze zvolit i podmínku určující zastavení běhu aplikace, popř. počet průchodů tímto bodem. Při ladění programů v integrovaném debuggeru lze využívat většinu funkcí, které programátor od tohoto typu ladicího prostředku očekává – krokování se vstupem do funkcí, krokování s přeskočením volání funkce (celá volaná funkce se provede jako jeden krok), zobrazení hodnot aktuálně viditelných proměnných a argumentů funkcí, seznam běžících a/nebo pozastavených vláken atd.

Obrázek 29: Samostatné okno se spuštěným demonstračním příkladem.

Obrázek 29: Samostatné okno se spuštěným demonstračním příkladem.

Eric do sebe taktéž integruje konzoli se spuštěným interpretrem Pythonu, což je velmi užitečný nástroj umožňující například testování částí vyvíjené aplikace, podporu pro ladění či trasování aplikace atd. Na rozdíl od některých jiných IDE se i v konzoli Erica používá zvýrazňování syntaxe a automatické doplňování kódu, takže se možnosti této konzole přibližují možnostem později popsaného IPythonu.

Obrázek 30: Plugin pro analýzu zdrojových kódů. Jak je z tohoto screenshotu patrné, učitelé by mě za tento demonstrační příklad nepochválili, protože neobsahuje žádné komentáře :-)

Obrázek 30: Plugin pro analýzu zdrojových kódů. Jak je z tohoto screenshotu patrné, učitelé by mě za tento demonstrační příklad nepochválili, protože neobsahuje žádné komentáře 🙂

Integrované vývojové prostředí Eric dále využívá systém zásuvných modulů (pluginů), který zajišťuje modularitu celého IDE i podporu pro instalaci externích pluginů, kterých v současnosti existuje několik desítek. Jedná se jak o obecné pluginy rozšiřující možnosti samotného IDE nezávisle na použitém, programovacím jazyku, tak i o pluginy určené především pro usnadnění vývoje aplikací v Pythonu.

Obrázek 31: Nastavení správce zásuvných modulů. Pluginy je možné instalovat buď přes správce balíčků (ve Fedoře „yum“), popř. lze pluginy získat i z jiných zdrojů.

Obrázek 31: Nastavení správce zásuvných modulů. Pluginy je možné instalovat buď přes správce balíčků (ve Fedoře „yum“), popř. lze pluginy získat i z jiných zdrojů.

Z dostupných zásuvných modulů lze jmenovat například plugin Rope používaný při refaktoringu zdrojových kódů či plugin volající PyLint, jenž lze využít pro kontrolu zdrojových kódů. Další pluginy umožňují napojení k systémům pro správu verzí (CSV, Git, Mercurial atd.) přímo z integrovaného vývojového prostředí, což je vlastnost, která citelně chybí právě v IDLE. Formou pluginů jsou realizováni i někteří „kouzelníci“ (wizards) používaní pro vyvolání složitějších operací vyžadujících provedení několika kroků.

Obrázek 32: Dialog obsahující seznam načtených zásuvných modulů.

Obrázek 32: Dialog obsahující seznam načtených zásuvných modulů.

Z mnoha dalších vlastností Erica bych jmenoval i modul pro tvorbu diagramů tříd na základě analýzy zdrojových kódů vyvíjené aplikace. Jedná se o nástroj, který například může pomoci s vytvářením (programátorské) dokumentace. Vygenerované diagramy tříd jsou editovatelné, což je užitečné, protože ve chvíli, kdy jsou vazby mezi třídami složitější, se musí v automaticky vytvořeném grafu provést úpravy, aby byly vazby přehlednější.

Obrázek 33: Diagram tříd velmi jednoduché demonstrační aplikace s jediným modulem.

Obrázek 33: Diagram tříd velmi jednoduché demonstrační aplikace s jediným modulem.

Obrázek 34: Diagram tříd složitější aplikace. Původní automaticky vygenerovaný graf musel být ručně upraven, aby byly vazby mezi jednotlivými třídami přehlednější.

Obrázek 34: Diagram tříd složitější aplikace. Původní automaticky vygenerovaný graf musel být ručně upraven, aby byly vazby mezi jednotlivými třídami přehlednější.

Obsah následující části seriálu

V následující části seriálu o integrovaných vývojových prostředích dostupných v systému Fedora si popíšeme další IDE určená pro tvorbu a ladění aplikací napsaných v programovacím jazyku Python. Především si popíšeme prostředí PyDev založeného na Eclipse, dále se zmíníme o nastavení Anjuty pro práci s Pythonem a posléze se budeme zabývat i nástroji nazvanými IPython a IPython Notebook.

Obrázek 35: Integrované vývojové prostředí Anjuta, které jsme si již v tomto seriálu popsali (viz též první díl tohoto seriálu), lze velmi snadno upravit pro potřeby vývoje v Pythonu.

Obrázek 35: Integrované vývojové prostředí Anjuta, které jsme si již v tomto seriálu popsali (viz též první díl tohoto seriálu), lze velmi snadno upravit pro potřeby vývoje v Pythonu.

Obrázek 36: Nástroj IPython notebook je založen na použití webového rozhraní se všemi klady a zápory, které toto řešení vývojářům přináší.

Obrázek 36: Nástroj IPython notebook je založen na použití webového rozhraní se všemi klady a zápory, které toto řešení vývojářům přináší.

Obrázek 37: Testovací příklad otevřený jako nový projekt v integrovaném vývojovém prostředí PyDev.

Obrázek 37: Testovací příklad otevřený jako nový projekt v integrovaném vývojovém prostředí PyDev.

Obrázek 38: Spuštění testovacího příkladu v prostředí PyDev.

Obrázek 38: Spuštění testovacího příkladu v prostředí PyDev.