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