Utilizzare funzioni in C da Python con SWIG

SWIG, funzione in C da python

Python è grandioso ma in tanti ambiti C riesce a fare molto meglio. Esiste un software che rende semplice interfacciare un listato in C con un software in Python, si chiama swig e leggendo questo articolo ne apprenderai i rudimenti.

Per iniziare abbiamo bisogno di qualcosa in C da utilizzare, quindi creiamo una funzione in C basica che restituisce una stringa di testo.

 

Questo listato in C andrà elaborato con swig, per farlo il software ha bisogno di un file di configurazione con estenzione .i che nel nostro caso avrà questa forma:

 

Adesso possiamo procedere. Da console richiamiamo swig indicando come parametri il linguaggio destinazione e il path del file di configurazione appena creato.

 

Il sorgente in C adesso va compilato, per fare funzionare il tutto servono alcuni parametri specifici. Di seguito i tre comandi necessari:

 

La funzione in C sayHello() adesso è pronta per essere utilizzata da qualsiasi script python. Ne creiamo uno di test per vedere se quanto abbiamo fatto funziona davvero:

 

Se tutto è andato come deve avrai il mio stesso risultato, un Hello World un poco fuori dagli schemi. Adesso sai come funziona swig ma quanto hai appreso non è sufficiente ad utilizzarlo in produzione. Trovi di più sulle reference ufficiali:  http://www.swig.org/Doc1.3/Python.html