58 votes

Cython peut-il compiler un fichier EXE?

Je sais ce que Cythons but est. Il est d'écrire des C compilable extensions en Python comme langage afin de produire des accélérations dans votre code. Ce que je voudrais savoir (et n'arrive pas à trouver à l'aide de mon google-fu) est si Cython peut en quelque sorte de les compiler dans un format exécutable depuis qu'il a déjà semble casser le code python bas en C.

J'utilise déjà Py2Exe, qui est juste un emballeur, mais je suis intéressé à l'utiliser pour compiler à quelque chose qui est un peu plus difficile pour décompresser (Tout ce qui est emballé à l'aide de Py2EXE peut simplement être extraite à l'aide de 7zip qui je ne veux pas)

Il semble que si c'est pas possible mon prochain alternative serait juste pour compiler tout mon code et charger un module, puis package à l'aide de py2exe avoir au moins plus de mon code en forme compilée, droit?

48voto

Aftershock Points 1602

http://wiki.cython.org/EmbeddingCython

Voilà, en supposant que vous avez installé python à C:\Python31 et que vous voulez utiliser Microsoft Compiler.

smalltest1.py - est le fichier que vous voulez compiler.

test.exe - nom de l'exécutable.

Vous devez définir les variables d'environnement pour cl .

 C:\Python31\python.exe C:\Python31\Scripts\cython.py smalltest1.py --embed

cl.exe  /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ic:\Python31\include -Ic:\Python31\PC /Tcsmalltest1.c /link /OUT:"test.exe" /SUBSYSTEM:CONSOLE /MACHINE:X86 /LIBPATH:c:\Python31\libs /LIBPATH:c:\Python31\PCbuild
 

31voto

Peter Hansen Points 8487

En principe, il semble être possible de faire quelque chose comme ce que vous voulez, selon le guide d'intégration du Pyrex . (Pyrex est effectivement une génération précédente de Cython.)

Hmm ... ce nom suggère une meilleure recherche que celle que j'avais essayée en premier: "incorporation de cython" mène à cette page qui sonne comme ce que vous voulez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X