Esecuzione di script Python

Un programma Python, meglio sarebbe dire uno script Python, non è compilato, cioè non è direttamente eseguibile dalla CPU del computer.
Esso, infatti, è costituito da un elenco di istruzioni, composto secondo le regole sintattiche del linguaggio di programmazione Python, scritte in caratteri alfanumerici leggibili dall’uomo: da qui il nome più adatto di “script”.
Per essere eseguito ha bisogno di essere interpretato nel momento stesso dell’esecuzione.
Vediamo ciò che può avvenire nei due sistemi operativi Linux e Windows.

Sistema Linux

Il modo basico di eseguire lo script è quello di posizionarci nella directory dove lo abbiamo archiviato e richiamarlo con l’interprete scrivendo a terminale, nel caso l’interprete sia Python3 e lo script sia quello del gioco Master Mind scaricabile dal relativo articolo:
python3 MasterMind.py
Se questa istruzione la inseriamo in un launcher, indicando al posto di MasterMind.py anche tutto il percorso per raggiungerlo, avremo un’icona da inserire nei nostri menu, cliccando sulla quale lanceremo il programma.
Se vogliamo poter lanciare il programma senza richiamare l’interprete dobbiamo inserire nello script, come prima riga, dopo i simboli #! il percorso per raggiungere l’interprete con il nome dell’interprete stesso. In questo modo, con alcuni gestori di file come Nemo, potremo anche lanciare il programma con doppio click sull’icona del file.
Ovviamente lo script va reso preventivamente eseguibile con chmod 555.
Per i programmi che utilizzano moduli, come avviene per il nostro Master Mind con il modulo tkinter, occorre che, insieme all’interprete, sia presente sul computer anche il modulo stesso.
Nei sistemi Linux, che hanno generalmente preinstallato Python insieme al sistema, può accadere che la preinstallazione non comprenda il modulo tkinter. Si rimedia subito cercando tkinter nel gestore di programmi e installandolo. Indirettamente si può installare tkinter installando la Idle (Integrated DeveLopment Environment) del nostro Python, peraltro utilissima per produrre gli script.

Sistema Windows

Tutti gli installatori di Python per Windows installano anche tkinter, e questo è bene.
Il male viene dal fatto che l’installatore inserisce l’interprete in una directory intitolata alla versione di Python che installa, all’interno della quale, però, il nome del programma interprete è sempre python.exe, indipendentemente dalla versione. Mentre, cioè, nel sistema Linux abbiamo un eseguibile python2 per la versione 2 e un eseguibile python3 per la versione 3, in Windows abbiamo un eseguibile python.exe archiviato nella directory Python20 per python 2 e un eseguibile, ancora python.exe, archiviato nella directory Python30 per python 3.
L’installatore non inserisce il percorso a python.exe nel path di sistema: forse fa questo per evitare casini. Infatti se installassimo due versioni di Python su Windows, la 2 e la 3, e inserissimo entrambe nel path di sistema combineremmo un guaio, in quanto il richiamo dell’eseguibile python.exe per interpretare uno script Python avverrebbe a caso, senza tener conto della versione di Python con cui è stato generato lo script.
Nè possiamo sperare che ci aiuti la prima riga dello script, dove, dopo i simboli #! inseriamo il percorso per raggiungere l’interprete giusto: questa riga, infatti, è capita solo dal sistema operativo Linux (che, come tutti ormai sanno, è il miglior sistema operativo esistente).
In conclusione, se abbiamo il nostro giochino Master Mind su Windows e vogliamo inserirlo nel menu lo facciamo indicando ove dovuto i percorsi all’interprete e allo script da eseguire.
Se vogliamo che il nostro giochino parta con doppio click sulla sua icona:
. o, visto che lo script è in Python 3, inseriamo nel path di sistema il percorso c:\python30 e tutte le volte che richiamiamo python ci esce la versione 3;
. oppure creiamo un file batch con l’istruzione
c:\python30\python.exe “<percorso allo script da eseguire>”,
lo archiviamo con l’estensione .bat e lanciamo il nostro giochino con doppio click sull’icona del file batch.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.