Come configurare e usare l'interprete interattivo Python
Introduzione all'interprete interattivo Python
Il terminale interattivo Python
Il terminale interattivo Python permette di interagire con l'interprete Python. Non appena il terminale interattivo è attivato, è possibile scrivere codice Python linea per linea. Una linea del terminale interattivo inizia sempre con i caratteri >>> o ..., secondo la regola dell'indentazione del codice.
$ python Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> pronto = "utente" >>> if pronto: ... print pronto ... utente >>>
Per uscire dal terminale interattivo Python, usiamo Ctrl+D in ambiente linux ubuntu. Poiché il terminale interattivo svolge un ruolo importante nello sviluppo di codice Python, conviene personalizzarlo per un uso più efficiente. Come farlo è spiegato nel paragrafo seguente.
Il file di avvio del terminale interattivo Python
Il terminale interattivo può essere configurato con un file di avvio. Durante l'attivazione, il terminale interattivo cerca la variabile di sistema PYTHONSTARTUP ed esegue il codice che è nel file puntato da questa variabile. Alcune distribuzioni Linux forniscono uno script di avvio per default, che in genere si trova nella cartella home; questo script viene chiamato .pythonstartup. Funzionalità quali il completamento di parole con il tasto TAB, la storia dei comandi eseguiti, sono necessarie per migliorare l'ergonomia d'uso del terminale interattive. Queste funzioni sono basate sul modulo readline, che é dunque richiesto. È inoltre possibile creare un semplice script di avvio come segue:
import readline import rlcompleter import atexit import os # tab completion readline.parse_and_bind('tab: complete') # history file histfile = os.path.join(os.environ['HOME'], '.pythonhistory') try: readline.read_history_file(histfile) except IOError: pass atexit.register(readline.write_history_file, histfile) del os, histfile, readline, rlcompleter
In Linux, il modo più semplice è quello di creare lo script di avvio nella cartella home e chiamarlo .pythonstartup. A questo punto si puo' aggiungere una variabile di sistema PYTHONSTARTUP che punta allo script .pythonstartup. Questo può essere fatto, ad esempio, utilizzando il file .profile (o meglio .bashrc), dove possiamo inizializzare la variabile PYTHONSTARTUP inserendo alla fine del file la linea seguente:
export PYTHONSTARTUP=~/.pythonstartup
Quando il terminale interattivo viene lanciato, lo script .pythonstartup dovrebbe essere eseguito e le nuove funzionalità sono rese disponibili. Ad esempio, la funzionalità di completamento di parole con il tasto TAB è veramente utile per analizzare facilmente tutti gli attributi di qualsivoglia oggetto Python:
>>> import hashlib >>> hashlib.<tab> hashlib.__class__( hashlib.__loader__ hashlib.__subclasshook__( hashlib.__delattr__( hashlib.__name__ hashlib._hashlib hashlib.__dict__ hashlib.__new__( hashlib.md5( hashlib.__doc__ hashlib.__package__ hashlib.new( hashlib.__file__ hashlib.__py_new( hashlib.sha1( hashlib.__format__( hashlib.__reduce__( hashlib.sha224( hashlib.__get_builtin_constructor( hashlib.__reduce_ex__( hashlib.sha256( hashlib.__getattribute__( hashlib.__repr__( hashlib.sha384( hashlib.__hash__( hashlib.__setattr__( hashlib.sha512( hashlib.__hash_new( hashlib.__sizeof__( hashlib.__init__(
IPyhton: un terminale interattivo Python avanzato
É possibile adattare lo script di avvio .pythonstartup per avere maggiori funzionalità. Inoltre, il modulo code fornisce le classi base dell'interprete. Tuttavia, vi è già un interprete interattivo Python avanzato, chiamato IPython, che mette a disposizione funzioni quali l'introspezione dinamica degli oggetti, accesso ai comandi di sistema dal terminale Python, strumenti di debug, ecc.
Avvio del terminale interattivo Python dal terminale di sistema
L'avvio dell'interprete interattivo Python dal terminale di sistema (semplicemente con il comando python), dà accesso a un certo numero di opzioni:
$ python [-dEiOQsStuvVxX3?] [-c command | -m module-name | script | - ] [args] $ python -V Python 2.6.5
Tutti i parametri successivi al comando python sono disponibile a partire dall'attributo sys.argv. Per esempio il primo parametro é accessibile con sys.argv[0]. L'utilizzo più comune dell'interprete Python è, naturalmente, una semplice invocazione del nome di uno script Python. In questo caso, l'interprete Python legge ed esegue lo script contenuto nel file:
$ python script.py [args]
Quando viene avviato con il comando -c command, l'interprete interattivo Python esegue i dati delle istruzioni contenuto in comand. Il set di istruzioni a cui si riferisce comand può contenere più linee separate, che devono tener conto degli spazi necessari di indentazione. Se questa opzione viene utilizzata, il primo parametro in sys.argv sarà -c e la cartella corrente verrà aggiunto all'inizio della variabile sys.path, consentendo l'importazione dei moduli Python presenti in quella directory.
$ python -c """ > a=2; b=3 > if a: print a+b""" 5 $
Quando l'interprete Python viene avviato con l'opzione -m module-name, il modulo indicato viene localizzato ed eseguito come uno script. Il nome del modulo indicato non contiene l'estensione di file .py.
$ python -m module [args]
Con l'opzione -i possiamo, tutto in una volta, lanciare uno script python, eseguirlo, avviare l'interprete interattivo Python ed accedere agli attributi dello script. Ad esempio, consideriamo un file Python nella directory corrente, denominato interprete.py, contenente il seguente script:
#!/usr/local/bin/python2.7 # -*- coding: utf-8 -*- # # Copyright 2012 RasadaCrea. Diritti Riservati uno_string = 'string' un_intero = 11 un_arg = 'un_arg_di_funzione' def una_funzione(un_arg): return un_arg class UnaClasse: pass una_istanza = UnaClasse() print '%s - %d - %s - %s' % (uno_string, un_intero, una_funzione(un_arg), una_istanza)
L'avvio di questo script, dal terminale interattivo, con l'opzione -i del comando python, permette di accedere alle funzionalità seguenti:
$ python -i interprete.py string - 11 - un_arg_di_funzione - <__main__.UnaClasse instance at 0xb738ca0c> >>> vars() {'un_intero': 11, '__builtins__': <module '__builtin__' (built-in)>, 'UnaClasse': <class __main__.UnaClasse at 0xb7382a7c>, '__package__': None, 'una_istanza': <__main__.UnaClasse instance at 0xb738ca0c>, 'un_arg': 'un_arg_di_funzione', '__name__': '__main__', '__doc__': None, 'uno_string': 'string', 'una_funzione': <function una_funzione at 0xb737da74>} >>> un_intero 11 >>> una_funzione <function una_funzione at 0xb737da74> >>> una_funzione('un altro parametro') 'un altro parametro' >>> una_istanza <__main__.UnaClasse instance at 0xb738ca0c>
Formazione individuale e corsi di programmazione Python da RasadaCrea
Tutti i corsi di formazione in programmazione Python tenuti da RasadaCrea sono individuali e personalizzati. Contattate RasadaCrea per ulteriori informazioni sulla creazione di un piano di formazione personalizzato di corsi di programmazione Python, e per conoscere i prezzi e l'organizzazione dei programmi di apprendimento Python.
RasadaCrea Tweets e Social Web
- Corso di formazione individuale di framework web django e programmi python http://t.co/DASdtovT #solution #training 13 giorni fa
- Come creare scripts Python di trattamento di dati log: corsi di formazione RasadaCrea http://t.co/dKh7k2Vk #web #training 70 giorni fa
- Strategie di campagne email marketing con newsletter django da RasadaCrea http://t.co/TVFyP4ab #solution #training 90 giorni fa