Fer executables directes¶
En UNIX, un fitxer text pot ser executable fent el següent:
Escrivint en la primera línia del text, l’intèrpret que executarà el text. Aquesta línia contindrà a l’inici els caràcters
#!per després posar el camí i el nom de l’executable que interpretarà el text. Per exemple, els guions de bash començaran:#!/bin/bashCanviar els indicadors del fitxer posant que sigui executable per tothom:
$ chmod +x fitxerExecutableO bé, que sigui executable només pel usuari:
$ chmod u+x fitxerExecutableLa mateixa idea es podria fer per donar permisos de grup (
g) o tothom (a)
Per fer un executable de python 3 cal posar en el fitxer de python la primera línia:
#!/usr/bin/python3
Això funciona per debian i ubuntu. No tots els sistemes UNIX posen l´interpret python a /usr/bin/. Per fer compatible el guió en altres sistemes que usen altres camins, s’usa el programa /usr/bin/env que rep com a paràmetre l’intèrpret a executar. Si aquest és python3 la línia quedaria:
#!/usr/bin/env python3
Exemple:
Editem el fitxer
exemple.py:#!/usr/bin/env python3 print('Hola tothom')Escrivim en el terminal:
$ chmod +x exemple.pyAra el podem executar directament:
$ ./exemple.py Hola tothom $Si escrivim:
$ export PATH=$PATH":."bash cercarà també l’executable al directori de treball (»
.»):$ exemple.py Hola tothom $
Per treballar des del interpret de python i/o des del interpret de bash, el millor és organitzar el codi de python de la següent manera:
Editem el fitxer
exemple.py:def programa(): print('Hola tothom') if __name__ == "__main__": programa()
Editem el fitxer
exempleamb indicadorsx:#!/usr/bin/env python3 from exemple import programa if __name__ == "__main__": programa()
D’aquesta forma, podem fer en bash (si el PATH té en compte el directori de treball):
$ exemple Hola tothom $També:
$ python3 >>> from exemple import programa >>> programa() Hola tothomSi no haguéssim posat la construcció
ifenexemple.py, un import en l’interpret de python executaria el programa en el moment de fer l’import.