Interpretr jazyka Python je většinou nainstalován jako soubor /usr/local/bin/python. Máte-li zařazen adresář /usr/local/bin do cesty, v níž shell vyhledává spustitelné soubory, můžete prostředí jazyka spustit přímo zapsáním příkazu
python
Jméno adresáře, v němž je Python nainstalován, je závislé na volbách nastavených při jeho překladu, proto je možné, že ve vašem systému tomu bude jinak. Více informací vám jistě sdělí správce vašeho systému.
Pro ukončení interpretru stiskněte znak konce souboru (EOF, Control-D v systému Unix, Control-Z v systémech Dos a Windows). V tomto případě předá prostředí jazyka shellu návratovou hodnotu 0. Nelze-li interpretr takto opustit, lze použít následující příkaz: "import sys; sys.exit()".
Editování příkazového řádku v interpretru jazyka Python není příliš pohodlné.
Proto lze interpretr v Unixovém prostředí zkompilovat s podporou knihovny
GNU Readline, která zpřístupní historii příkazů i doplňování jmen příkazů
a proměnných. Velice rychlý způsob, jak zjistit, zda váš interpretr podporuje
tuto knihovnu, je zapsání znaku Control-P po první výzvě, kterou
dostanete po spuštění Pythonu. Jestliže se ozve pípnutí, má interpretr
pravděpodobně podporu knihovny Readline zakompilovánu. Jestliže se objeví
znaky P
, pak nejsou rozšířené úpravy příkazového řádku podporovány
a vy můžete používat pouze klávesu Backspace pro smazání předchozího
znaku. Pro další informace o konfiguraci součinnosti interpretru a knihovny
GNU Readline se podívejte do Dodatku A.
Interpretr pracuje podobně jako shell systému Unix: když je spuštěn a jeho standardní vstup je spojen s terminálovým zařízením, načítá a spouští příkazy interaktivně. Je-li mu při spuštění předáno jako argument jméno souboru, případně je standardní vstup přesměrován z nějakého souboru, čte a spouští příkazy přímo z tohoto souboru - skriptu.
Třetí způsob, jak lze provést libovolný kód jazyka Python, je spuštění příkazu "python -c příkazy [argumenty] ...", jenž rovnou vykoná příkazy. Jde o obdobu stejnojmenné volby unixového shellu. Jelikož příkazy jazyka Python často obsahují mezery nebo jiné speciální znaky musí se uvodit nejlépe dvojitými uvozovkami, aby se zabránilo jejich interpretování shellem.
Pamatujte, že je rozdíl mezi spuštěním příkazu "python soubor" a "python < soubor". V případě prvním se nejprve načte a zkontroluje celý soubor, na případné chyby v syntaxi se tudíž přijde ihned, ještě před spuštěním prvního příkazu. Ve druhém případě se načítají příkazy jeden po druhém, následně jsou kontrolovány a spouštěny, je-li některý příkaz syntakticky chybně, zjistí se to až těsně před jeho spuštěním. Pozornost je třeba také věnovat příkazům, které čtou vstup od uživatele, přesměrování standardního vstupu totiž platí i pro ně a ty tudíž (nechtěně) načtou následující kód programu.
Velice častým požadavkem je po vykonání skriptu spustit interaktivní mód a tím pádem předat řízení programu uživateli, čehož lze s výhodou využít při ladění programů apod. To zajistí volba -i předaná příkazu python (tato volba nefunguje správně v případě přesměrovaného standardního vstupu).
Jméno skriptu a další argumenty předané z příkazového řádku jsou uloženy v
proměnné sys.argv
. Jedná se o seznam řetězců obsahující minimálně jeden
prvek - jméno skriptu. Pouze je-li aktivní interaktivní mód, pak je prvek
sys.argv[0]
roven prázdnému řetězce. Jde-li o skript čtený ze
standardního vstupu, je sys.argv[0]
nastaven na hodnotu '-'
. Při
použití volby -c příkazy odpovídá nultý prvek seznamu
sys.argv
hodnotě '-c'
. Zde je důležité podotknout, že všechny
argumenty předané za -c příkazy již nejsou interpretrem
zpracovány, dojde pouze k jejich uložení do seznamu sys.argv
.
Jsou-li příkazy čteny z terminálu, říkáme, že interpretr je v
interaktivním módu. V tomto módu se nejprve zobrazí uvítací zpráva
obsahující informace o verzi a autorských právech. Následně běhové prostředí
vytiskne primární výzvu (většinou ">>
> ") a čeká na zadání
příkazu. Pro vstup složitějších příkazů rozložených přes více řádků se používá
i sekundární výzva (implicitně "... ").
python Python 1.5.2b2 (#1, Feb 28 1999, 00:02:06) [GCC 2.8.1] on sunos5 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>>
Typickým příkladem víceřádkového příkazu jsou konstrukce pro řízení toku programu. Jako příklad si uvedeme konstrukci if:
>>> zeme_je_placka = 1 >>> if zeme_je_placka: ... print "Bacha, ať z ní nespadnete!" ... Bacha, ať z ní nespadnete!
Při výskytu chyby vytiskne interpretr chybovou zprávu obsahující výpis volaných funkcí a popis chyby samotné. Dojde-li k chybě v interaktivním módu, vrátí se řízení zpět k primární výzvě, při vzniku chyby ve skriptu se nejprve vytiskne hlášení o chybě a poté se skript ukončí s nenulovým návratovým kódem (v tomto případě nejsou výjimky obsloužené větví except příkazu try brány jako chyby). Všechna chybová hlášení jsou vypisována na standardní chybový výstup, čímž se zabrání pomíchání chybových výpisů s výstupem samotného programu (ten je vypisován na standardní výstup). Fatální chyby jako vnitřní nekonzistence datových struktur či některé případy vyčerpání paměti můžou způsobit rovnou ukončení interpretru s nenulovým návratovým kódem.
Stisk kombinace Control-C (případně DEL) vyvolá přerušení. To
v interaktivním módu způsobí okamžitý návrat k primární výzvě. 2.1Přerušení vzniklé za běhu příkazu ho ukončí a vyvolá výjimku KeyboardInterrupt
,
kterou lze odchytit obvyklým způsobem příkazem try
. 2.2
Na BSD kompatibilních systémech Unix můžete libovolný skript jazyka Python učinit spustitelným souborem uvedením této "magické" sekvence na začátku souboru:
#!/usr/bin/env python
(Stejný postup jistě znají ti, kteří píší skriptu unixového shellu.)
Pokud má skript nastaven executable bit (viz. příkaz chmod(1), více informací v manuálových stránkách) a spustitelný soubor interpretru se nachází v uživatelově implicitní cestě (tj. cestě, kde shell vyhledává spustitelné soubory a příkazy, určuje jí proměnná prostředí PATH), lze tento skript spustit přímo z příkazové řádky shellu. Je důležité, aby znaky "#!" byly první dva znaky celého souboru. Všimněte si, že znak "#" je v Pythonu použit jako začátek komentáře, tudíž sekvence "#!" je interpretrem považována za obyčejný komentář.
Používáte-li Python interaktivně, často potřebujete spouštět některé příkazy při každém startu prostředí. To lze snadno zajistit nastavením proměnná prostředí PYTHONSTARTUP tak, aby ukazovala na jméno souboru obsahujícího požadované příkazy. Tento soubor je obdobou souboru .profile v unixových shellech.
Podobně jako .profile je i tento soubor čten pouze v případě interaktivního
sezení, při spouštění skriptů se neuplatní! Všechny příkazu načítané na
začátku interaktivního sezení jsou spouštěny ve stejném prostoru jmen, ve
kterém následně budou interaktivně spouštěny příkazy. Tudíž ty objekty,
které tyto příkazy definují (nebo importují) lze používat přímo v příkazech,
které spouštíme v interaktivním módu. V případě potřeby můžete v tomto souboru
nastavit i výzvy interpretru (primární výzvu reprezentuje proměnná
sys.ps1
, sekundární sys.ps2
).
Pokud potřebujete načítat i soubor, který je uložen v pracovním adresáři (pro nastavení různých voleb pro různé projekty apod.), musíte v hlavním souboru, na nějž ukazuje proměnná PYTHONSTARTUP, zapsat příkazy na způsob:
if os.path.isfile('.pythonrc.py'): execfile('.pythonrc.py')
Přejete-li si načítat soubor uvedený v proměnné PYTHONSTARTUP i v případě skriptů, musíte tento soubor spustit sami. To učiní tyto příkazy uvedená na začátku skriptu:
import os filename = os.environ.get('PYTHONSTARTUP') if filename and os.path.isfile(filename): execfile(filename)