Interpretr jazyka Python je většinou nainstalován jako soubor /usr/local/bin/python. Po zařazení adresáře /usr/local/bin do cesty, v níž shell vyhledává spustitelné soubory, můžete interpretr spustit přímo zapsáním příkazu
python
Jelikož je jméno adresáře, kde je interpretr jazyka nainstalován, závislé na jeho instalaci, je možné, že ve vašem systému bude umístěn na jiném místě, více informací nejspíše získáte od administrátora vašeho systému.
Zapsání znaku konce souboru (EOF, Control-D v systému Unix, Control-Z v systémech Dos a Windows) způsobí ukončení interpretru s návratovou hodnotou 0, která je předána shellu. Jestliže tato možnost nefunguje, můžete ukončit interpretr následujícím příkazem: "import sys; sys.exit()".
Editování příkazového řádku v interpretru jazyka Python není příliš pohodlné.
V systémech Unixale může být interpretr zkompilován s podporou knihovny
GNU readline, díky které již je přístupná třeba historie příkazů nebo doplňování
jmen příkazů a proměnných. Rychlý způsob, jak zjistit, jestli váš interpretr
tuto podporu obsahuje je napsáním znaku Control-P po první výzvě, kterou
dostanete po spuštění Pythonu. Jestliže se ozve pípnutí, máte interpretr
zkompilován s knihovnou readline, viz. Dodatek A, kde najdete
úvod do klávesových zkratek použitelných v knihovně readline. Jestliže se nic
nestane nebo se objeví znaky P
, rozšířené úpravy příkazového řádku
nejsou podporovány a vy můžete používat pouze klávesu Backspace pro
smazání předchozího znaku na aktuální řádce.
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ě, když je mu při spuštění předáno jako argument jméno souboru nebo standradní vstup je přesměrován z nějakého souboru, čte a spouští příkazy z tohoto souboru - skriptu.
Třetí cesta, jak lze interpretr spustit, je "python -c command [arg] ...", který spustí příkazy command, což odpovídá volbě -c 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 "python file" a
"python < file". V prvním případě je načten parserem celý soubor ještě
před spuštěním programu interpretrem a proto interpretr rozpozná přímo jeho
konec. Ve druhém případě ale načítá příkazy postupně ze standardního vstupu
dokud není standardní vstup uzavřen (tj. dokud není soubor celý přečten), takže
na případné chyby v syntaxi se přijde až při pokusu o jejich spuštění, kdežto
u prvního zápisu jsou tyto chyby zjištěny již při načtení souboru.
Rovněž je třeba dávat pozor na ty příkazy, které vyžadují vstup od uživatele,
jako input()
a raw_input()
, protože nebudou načítat data
z terminálu ale ze souboru file.
Když je použit skript, je někdy užitečné po ukončení skriptu spustit interaktivní mód, což zajistí volba -i předaná příkazu python (toto nefunguje v případě, kdy je skript čten ze standardního vstupu, je tomu tak ze stejných důvodů, jaké byly uvedeny v předchozím odstavci).
Jméno skriptu a další argumenty uvedené za ním jsou předány v proměnné
sys.argv
, která je seznamem řetězců o minimálně jednom prvku;
když se nejedná o žádný skript a nejsou uvedeny žádné argumenty, prvek
sys.argv[0]
je prázdný řetězec. Jestliže je skript čten ze standardního
vstupu, sys.argv[0]
je rovno '-'
. Je-li použita volba
-c command, sys.argv[0]
je nastaveno na '-c'
.
Volby předané za -c command již nejsou zpracovány
interpretrem, ale jsou uloženy do pole sys.argv
pro jejich pozdější
využití interpretovaným kódem.
Jsou-li příkazy čteny z terminálu, říkáme, že interpretr je
v interaktivím módu. V tomto módu zobrazí primární výzvu
(většinou ">>
> ") a čeká na zadání příkazu. Pro příkazy,
které jsou na více než jednom řádku, používá sekundární výzvu (implicitně
"... "). Před zobrazením první výzvy interpretr ještě vytiskne uvítací
zprávu obsahující informace o jeho verzi a autorských právech.
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 příkazu, který je rozložen přes více řádků jsou konstrukce pro řízení toku programu. Jako příklad si uvedeme konstrukci if:
>>> svet_je_plochy = 1 >>> if svet_je_plochy: ... print "Bacha, ať z něj nespadnete!" ... Bacha, ať z něj nespadnete!
Objeví-li se chyba, vytiskne interprert chybovou zprávu a výpis volaných funkcí. V interaktivním módu se vrátí k primární výzvě; když vstup pochází ze souboru, interpretr se po vytisknutí výpisu funkcí ukončí s nenulovým návratovým kódem (výjimky obsloužené větví except v konstrukci try nejsou v tomto kontextu brány jako chyby). Některé zásadní chyby jako vnitřní nekonzistence nebo některé případy vyčerpání paměti způsobí rovnou ukončení interpretru s nenulovým návratovým kódem. Všechny chybové zprávy jsou vypisovány na standardní chybový výstup, čímž se zabrání pomíchání chybových výpisů s výstupem programu, který se objeví na standardním výstupu.
Přerušení (většinou stisk kombinace Control-C nebo DEL)
během zadávání příkazu (je jedno jestli na primární nebo sekundární výzvě)
způsobí návrat k primární výzvě.2.1Přerušení vyvolané při běhu příkazu vyvolá výjimku KeyboardInterrupt
,
kterou můžete odchytit konstrukcí try
.
Na BSD kompatibilních systémech Unix mohou být skripty v Pythonu, podobně jako shell skripty, přímo spustitelnými soubory. Stačí na začátek souborů uvést "magickou" sekvenci
#!/usr/bin/env python
Skript pak můžeme spustit přímo z příkazové řádky shellu za předpokladu, že se interpretr se nachází v uživatelově implicitní cestě (proměnná prostředí PATH) a skript má nastaven executable bit. Znaky "#!" musí být první dva znaky celého souboru. Znak "#" je v Pythonu použit jako začátek komentáře a proto je sekvence "#!" interpretrem považována za obyčejný komentář.
Používáte-li Python interaktivně, je častým požadavkem spouštět některé příkazy pokaždé, když spustíte interpretr. To lze velice snadno učinit nastavením proměnné prostrědí PYTHONSTARTUP tak, aby ukazovala na jméno nějakého souboru obsahujícího požadované příkazy. Tento soubor pak bude obdobou souboru .profile v unixových shellech.
Tento soubor je čten pouze v případě interaktivních interpretrů, neděje se tak,
když Python načítá příkazy ze skriptu nebo když je soubor /dev/tty
explicitně určen jako zdroj příkazů. Příkazy načítané na začátku interaktivního
sezení jsou spouštěny ve stejném prostoru jmen, kde budou posléze spouštěny
i interaktivní příkazy, takže objekty které tyto příkazy definují nebo importují
jsou zpřístupněny bez použití plně kvalifikovaných jmen. V tomto souboru taktéž
můžete nastavit výzvy (primární sys.ps1
a sekundární sys.ps2
).
Když chcete načítat další soubor z aktuálního adresáře, musíte v hlavním souboru napsat cosi jako "if os.path.isfile('.pythonrc.py'): execfile('.pythonrc.py')". Pokud chcete načítat soubory i při spuštění skriptů, musíte tak učinit explicitně:
import os filename = os.environ.get('PYTHONSTARTUP') if filename and os.path.isfile(filename): execfile(filename)