16. Dodatek¶
16.1. Interaktivní režim¶
Interaktivní REPL má dvě varianty. Klasický základní interpret je podporován na všech platformách a nabízí minimální možnosti ovládání řádku.
Od Pythonu 3.13 se ve výchozím nastavení používá nový interaktivní shell. Ten
podporuje barvy, úpravy více řádků, procházení historie a režim vkládání.
Podrobnosti o vypnutí barev naleznete v části
Controlling color. Další funkce poskytují funkční klávesy.
F1 otevře interaktivní prohlížeč nápovědy pydoc. F2 umožní
procházet historii příkazového řádku bez výstupu a bez výzev >>> a
…. F3 aktivuje „režim vkládání“, který usnadňuje vložení
větších bloků kódu. Dalším stisknutím F3 se vrátíte k běžné výzvě.
Nový interaktivní shell ukončíte zadáním exit nebo quit. Za tyto příkazy není nutné přidávat závorky volání.
Pokud nový interaktivní shell nechcete používat, lze jej vypnout proměnnou
prostředí PYTHON_BASIC_REPL.
16.1.1. Obsluha chyb¶
Když nastane chyba, interpret vypíše chybové hlášení a výpis zásobníku volání.
V interaktivním režimu se poté vrátí k primární výzvě; pokud vstup pocházel ze
souboru, po vypsání zásobníku skončí s nenulovým návratovým stavem. (Výjimky
obsloužené klauzulí except v příkazu try se v tomto
kontextu za chyby nepovažují.) Některé chyby jsou bezpodmínečně fatální a
způsobí ukončení s nenulovým stavem. To platí pro vnitřní nekonzistence a
některé případy vyčerpání paměti. Všechna chybová hlášení se zapisují do
standardního chybového proudu; běžný výstup provedených příkazů se zapisuje na
standardní výstup.
Zadání znaku přerušení (obvykle Control-C nebo Delete) při
primární či sekundární výzvě zruší vstup a vrátí se k primární výzvě. [1]
Přerušení zadané během provádění příkazu vyvolá výjimku
KeyboardInterrupt, kterou lze obsloužit příkazem try.
16.1.2. Spustitelné skripty Pythonu¶
Na unixových systémech odvozených od BSD lze skripty Pythonu učinit přímo spustitelnými podobně jako shellové skripty vložením řádku:
#!/usr/bin/env python3
na začátek skriptu (za předpokladu, že je interpret v uživatelově
PATH) a nastavením souboru jako spustitelného. #! musí být prvními
dvěma znaky souboru. Na některých platformách musí tento první řádek končit
unixovým zakončením řádku ('\n'), nikoli zakončením Windows ('\r\n').
Znak mřížky '#' se v Pythonu používá k zahájení komentáře.
Skriptu lze nastavit spustitelný režim neboli oprávnění příkazem chmod.
$ chmod +x myscript.py
V systémech Windows pojem „spustitelný režim“ neexistuje. Instalátor Pythonu
automaticky přidruží soubory .py k python.exe, takže se soubor Pythonu
po dvojitém kliknutí spustí jako skript. Přípona může být také .pyw; v tom
případě se běžně zobrazované okno konzole potlačí.
16.1.3. Spouštěcí soubor interaktivního režimu¶
Při interaktivním používání Pythonu se často hodí provést při každém spuštění
interpretu několik standardních příkazů. Stačí nastavit proměnnou prostředí
PYTHONSTARTUP na název souboru obsahujícího spouštěcí příkazy. Podobá
se to souboru .profile unixových shellů.
Tento soubor se načítá pouze v interaktivních sezeních, nikoli když Python čte
příkazy ze skriptu ani když je jako explicitní zdroj příkazů zadáno
/dev/tty (které se jinak chová jako interaktivní sezení). Provádí se ve
stejném jmenném prostoru jako interaktivní příkazy, takže objekty, které definuje
nebo importuje, lze v interaktivním sezení používat bez kvalifikace. V tomto
souboru můžete také změnit výzvy sys.ps1 a sys.ps2.
Chcete-li načíst další spouštěcí soubor z aktuálního adresáře, můžete to
naprogramovat v globálním spouštěcím souboru pomocí kódu jako if
os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read()). Chcete-li
spouštěcí soubor použít ve skriptu, musíte to ve skriptu provést explicitně:
import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
with open(filename) as fobj:
startup_file = fobj.read()
exec(startup_file)
16.1.4. Moduly pro přizpůsobení¶
Python poskytuje dva háčky pro přizpůsobení: sitecustomize a usercustomize. Nejprve musíte zjistit umístění svého uživatelského adresáře site-packages. Spusťte Python a proveďte tento kód:
>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.x/site-packages'
Nyní můžete v tomto adresáři vytvořit soubor usercustomize.py a vložit
do něj libovolný obsah. Ovlivní každé spuštění Pythonu, pokud není použitím volby
-s zakázán automatický import.
sitecustomize funguje stejně, ale obvykle jej vytváří správce počítače
v globálním adresáři site-packages a importuje se před usercustomize.
Další podrobnosti naleznete v dokumentaci modulu site.
Poznámky pod čarou