17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

474<br />

Techniques avancées<br />

QUATRIÈME PARTIE<br />

}<br />

// le code C<br />

if (a > b)<br />

resultat = a;<br />

else<br />

resultat = b;<br />

// construction d'un objet de type int renvoyé à Python<br />

return Py_BuildValue("i", resultat);<br />

/*<br />

Table des méthodes du module<br />

*/<br />

static PyMethodDef CalculsMethods[] = {<br />

{"max", max, METH_VARARGS, "Calcul le max de deux nombres"},<br />

};<br />

PyMODINIT_FUNC initcalculs(void)<br />

{<br />

(void) Py_InitModule("calculs", CalculsMethods);<br />

}<br />

int main(int argc, char *argv[])<br />

{<br />

// argv[0] est utilisé pour initialiser le nom du module<br />

Py_SetProgramName(argv[0]);<br />

}<br />

// initialisation de l'interpréteur python<br />

Py_Initialize();<br />

// initialisation de la table des méthodes<br />

initcalculs();<br />

Installation de l’extension<br />

L’installation de ce module comme extension se fait également par le biais du<br />

module distutils.core.<br />

Fichier setup.py<br />

#!/usr/bin/python<br />

# -*- coding: utf8 -*from<br />

distutils.core import setup, Extension<br />

extension = Extension(name='calculs', sources=['calculs.c'])

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!