Compiler avec Cython - plusieurs fichiers
Bonjour à tous.
Je recherche depuis un moment un moyen de compiler mes codes Python avec Cython pour les distribuer sans dépendances. Alors il y a cx_Freeze qui marche assez bien, mais il ne fonctionne pas dans mon projet actuel et ne permet pas de gain de performances (pas compiler, ça embarque juste l'interpréteur).
J'ai réussi à compiler un fichier python avec Microsoft Visual Studio C++ et je me suis fait une sorte de protocole :
Citation:
Compilation (cython) avec Microsoft Visual Studio C++ :
1 - Compiler votre programme *.py (celui qu'il faut lancer en premier) avec cython.
(cmd : C:\Python32\python.exe C:\Python32\Scripts\cython.py main.py --embed -o main.c
--embed pour avoir un point d'entrée main(), et donc avoir un programme fonctionnant sans dépendances.)
2 - Lancer Visual Studio C++, créer un nouveau projet, mettre votre fichier .c créé à partir de cython.
3 - Ajouter le dossier /Pythonxx/include/ dans
-- propriété > Propriétés de configuration > C/C++ > Général > Autres répertoires include.
Il s'agit d'indiquer où trouver les .h (headers) de l'interpreteur Python.
4 - Ajouter les dossiers /Pythonxx/Lib/ et /Pythonxx/libs/ dans
-- propriété > Propriétés de configuration > Editeur de liens > Répertoires de blibliothèques supplémentaires
5 - Lancer la compilation (vérifiez que vous compiler en 32 bits pour un programme 32 bits, avec Python 32 bits, et vos modules 32 bits,
ou 64 bits si vous voulez un programme 64 bits, et que vous avez Python 64 bits avec les modules en 64 bits.)
6 - Un terminal s'ouvrira puis se refermera si vous avez besoin de ressources externes comme d'autres fichiers *.py (ou *.pyd compilés
avec Cython pour bénéficier de la rapiditée accrue !), images, sons, autre...
7 - Placer ces éléments dans le répertoire où se trouve votre .exe (mais laissez bien sûr les fichiers
dans leurs dossier s'ils sont dans un dossier).
8 - Lancer votre executable.
Je suis arrivé à avoir donc un exécutable qui fonctionne. Le soucis, c'est que mon programme s'étend dans plusieurs fichiers, et Cython ne les récupère pas automatiquement (j'ai placés ces fichiers quand même .py, et ça marche, sauf qu'il faut avoir installé Python, donc l'intérêt tombe à l'eau, surtout que ça change rien niveau perfs).
Donc j'aimerai savoir si vous aviez une solution pour compiler ces fichiers aussi, de manière à qu'ils soient indépendants.
Les mettre en .pyd (ou .pxd) ? Si oui, comment fait-on avec Cython ? (même avec la documentation officielle, je comprends pas exactement comment ça se passe)
Si je n'ai pas énoncé avec assez de précisions, n'hésitez pas à m'en demander davantage !
Merci d'avance ! ;)