Introduction
Il est possible avec certains modules comme PyInline ou Weave d'intégrer du code d'autres langages à l'intérieur même du code python.
Il est en fait compilé en direct à l'intérieur du code python. Il faut évidement avoir présent sur la machine un compilateur du langage concerné. (Pour le C, en environnement Windows, VC++6.0 fonctionne tel quel).
Analyse de performance de code "inline":
http://www.scipy.org/site_content/weave/python_performance.html
Test simple avec InLine
Environnement:
-Microsoft Visual C++ 6.0 installé
-Python 2.3 installé
Installation:
-dl package PyInline 0.03 sur http://sourceforge.net/project/showfiles.php?group_id=34103&release_id=50179
-lancer python setup.py install
Test:
-dans l'interpréteur python: >>> import PyInline
>>> m= PyInline.build(code="""
... int my_add(int a,intb) {
... return a+b;
... }
... """,language="C")
running build
running build_ext
building '_PyInline_de9a14d2a39aa28e67cab7f2a2a9727d' extension
creating build
creating build\temp.win32-2.3
creating build\temp.win32-2.3\Release
C:\Program Files\Microsoft Visual Studio\VC98\BIN\cl.exe /c /nologo /Ox /MD /W3
/GX /DNDEBUG -IC:\Python23\include -IC:\Python23\PC /Tc_PyInline_de9a14d2a39aa28
e67cab7f2a2a9727d.c /Fobuild\temp.win32-2.3\Release\_PyInline_de9a14d2a39aa28e67
cab7f2a2a9727d.obj
_PyInline_de9a14d2a39aa28e67cab7f2a2a9727d.c
creating build\lib.win32-2.3
C:\Program Files\Microsoft Visual Studio\VC98\BIN\link.exe /DLL /nologo /INCREME
NTAL:NO /LIBPATH:C:\Python23\libs /LIBPATH:C:\Python23\PCBuild /EXPORT:init_PyIn
line_de9a14d2a39aa28e67cab7f2a2a9727d build\temp.win32-2.3\Release\_PyInline_de9
a14d2a39aa28e67cab7f2a2a9727d.obj /OUT:build\lib.win32-2.3\_PyInline_de9a14d2a39
aa28e67cab7f2a2a9727d.pyd /IMPLIB:build\temp.win32-2.3\Release\_PyInline_de9a14d
2a39aa28e67cab7f2a2a9727d.lib
Creating library build\temp.win32-2.3\Release\_PyInline_de9a14d2a39aa28e67cab
7f2a2a9727d.lib and object build\temp.win32-2.3\Release\_PyInline_de9a14d2a39aa2
8e67cab7f2a2a9727d.exp
>>> m.my_add(3,8)
11
Aucun commentaire:
Enregistrer un commentaire