16. Appendice¶
16.1. Modalità Interattiva¶
Ci sono due varianti del REPL interattivo. L’interprete di base classico è supportato su tutte le piattaforme con capacità minime di controllo di riga.
On Windows, or Unix-like systems with curses
support,
a new interactive shell is used by default.
This one supports color, multiline editing, history browsing, and
paste mode. To disable color, see Controlling color for
details. Function keys provide some additional functionality.
F1 enters the interactive help browser pydoc
.
F2 allows for browsing command-line history with neither output nor the
>>> and … prompts. F3 enters «paste mode», which
makes pasting larger blocks of code easier. Press F3 to return to
the regular prompt.
Quando si utilizza la nuova shell interattiva, si può uscire dalla shell digitando exit o quit. Non è necessario aggiungere le parentesi di chiamata dopo questi comandi.
Se non si vuole usare la nuova shell interattiva, questa può essere disabilitata tramite la variabile di ambiente PYTHON_BASIC_REPL
.
16.1.1. Gestione degli Errori¶
Quando si verifica un errore, l’interprete stampa un messaggio di errore e una traccia dello stack. In modalità interattiva, quindi ritorna al prompt principale; quando l’input proviene da un file, esce con uno stato di uscita diverso da zero dopo aver stampato la traccia dello stack. (Le eccezioni gestite da una clausola except
in un’istruzione try
non sono errori in questo contesto.) Alcuni errori sono incondizionatamente fatali e causano un’uscita con uno stato di uscita diverso da zero; questo si applica alle incoerenze interne e a certi casi di esaurimento della memoria. Tutti i messaggi di errore sono scritti sul flusso standard degli errori; l’output normale dei comandi eseguiti è scritto sul flusso standard dell’output.
Digitare il carattere d’interruzione (di solito Control-C o Delete) al prompt principale o secondario cancella l’input e ritorna al prompt principale. [1] Digitando un’interruzione mentre un comando è in esecuzione si solleva l’eccezione KeyboardInterrupt
, che può essere gestita da un’istruzione try
.
16.1.2. Script Eseguibili Python¶
Nei sistemi Unix di tipo BSD, gli script Python possono essere resi direttamente eseguibili, come gli script di shell, aggiungendo la riga
#!/usr/bin/env python3
(supponendo che l’interprete sia nel PATH
dell’utente) all’inizio dello script e dando al file un permesso eseguibile. Il #!
deve essere i primi due caratteri del file. Su alcune piattaforme, questa prima riga deve terminare con un fine riga in stile Unix ('\n'
), non con un fine riga in stile Windows ('\r\n'
). Nota che il carattere cancelleto, '#'
, è usato per iniziare un commento in Python.
Lo script può essere reso eseguibile, o avere i permessi, usando il comando chmod.
$ chmod +x myscript.py
Nei sistemi Windows, non esiste il concetto di «modalità eseguibile». L’installatore Python associa automaticamente i file .py
con python.exe
in modo che un doppio clic su un file Python lo esegua come uno script. L’estensione può anche essere .pyw
; in tal caso, la finestra della console che appare normalmente viene soppressa.
16.1.3. Il File di Avvio Interattivo¶
Quando usi Python in modalità interattiva, è spesso utile avere alcuni comandi standard eseguiti ogni volta che l’interprete viene avviato. Puoi fare ciò impostando una variabile di ambiente chiamata PYTHONSTARTUP
al nome di un file contenente i tuoi comandi di avvio. Questo è simile alla funzionalità .profile
delle shell Unix.
Questo file viene letto solo nelle sessioni interattive, non quando Python legge i comandi da uno script, e non quando /dev/tty
è dato come fonte esplicita dei comandi (che altrimenti si comporta come una sessione interattiva). Viene eseguito nello stesso namespace dove vengono eseguiti i comandi interattivi, quindi gli oggetti che definisce o importa possono essere usati senza qualificazioni nella sessione interattiva. Puoi anche cambiare i prompt sys.ps1
e sys.ps2
in questo file.
Se vuoi leggere un file di avvio aggiuntivo dalla directory corrente, puoi programmare questo nel file di avvio globale usando il codice come if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())
. Se vuoi usare il file di avvio in uno script, devi farlo esplicitamente nello script:
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. I Moduli di Personalizzazione¶
Python fornisce due hook per permetterti di personalizzarlo: sitecustomize e usercustomize. Per vedere come funziona, devi prima trovare la posizione della directory user site-packages. Avvia Python ed esegui questo codice:
>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.x/site-packages'
Ora puoi creare un file chiamato usercustomize.py
in quella directory e inserire ciò che vuoi in esso. Questo influenzerà ogni invocazione di Python, a meno che non sia avviato con l’opzione -s
per disabilitare l’importazione automatica.
sitecustomize funziona allo stesso modo, ma è tipicamente creato da un amministratore del computer nella directory globale site-packages e viene importato prima di usercustomize. Per maggiori dettagli, vedi la documentazione del modulo site
.
Note a pie” di pagina