Y a-t-il des paquets majeurs/communs/importants que py2exe ne peut pas gérer? J'étudie actuellement la possibilité de créer un fichier .exe à partir d'un programme Python qui utilisera Tkinter, un module de lecture de fichiers Excel, NumPy, SciPy et matplotlib: est-ce réaliste d'essayer d'y parvenir avec py2exe?Forfaits et modules importants non compatibles avec py2exe?
Répondre
Je construis régulièrement py2exe exécutables à un seul fichier en utilisant Scipy, matplotlib, wxpython et win32com ou les modules xlrd/xlwt de Machin. Jamais utilisé Tkinter mais ne devrait pas être un problème, probablement wxpython est plus pointilleux.
J'ai rencontré des problèmes avec numpy/scipy, matplotlib et wxpython avant et après la construction de l'exécutable, mais une fois que vous savez quoi faire, ça marche bien.
Quelques problèmes:
matplotlib a besoin pour indiquer où certaines archives auxiliaires sont. Vous devez ajouter à votre setup.py
datafiles = matplotlib.get_py2exe_datafiles()
numpy/scipy me ont donné quelques problèmes, en raison de certains des modules expresions, lors de l'exécution de l'exécutable py2exe. Numpy a quelques lignes Suchs comme:
__doc__ += "something more"
qui échouent lorsque __doc__
est None.
Pour cela, j'ai dû modifier manuellement les scripts numpy (y compris if). Je ne sais pas si cela a été résolu dans les nouvelles versions. Wxpython est généralement une source de problèmes en raison de certains dll microsoft qui doivent être présents dans l'ordinateur pour fonctionner. Juste vous devez être prudent en vous assurant de les fournir dans votre paquet ou au moins prévenir vos utilisateurs sur le problème.
Quelques conseils utiles peuvent également être trouvés dans les wikis py2exe et wxpython
Il est réaliste d'essayer, bien sûr. Vous rencontrerez probablement quelques problèmes mais je doute que vous atteigniez un bloqueur, particulièrement avec des paquets très communs.
Vous pouvez obtenir un coup d'œil sur la façon dont fonctionne py2exe avec différentes bibliothèques ici:
http://www.py2exe.org/index.cgi/WorkingWithVariousPackagesAndModules
Pour tout ce qui ne figure pas là, déclencher un rapide Google pour py2exe <package-name>
+1: Thank you, Oli! J'ai choisi la réponse la plus détaillée, mais la vôtre est certainement utile! – EOL
Vous dites "Je crée régulièrement des fichiers exécutables py2exe en utilisant Scipy, matplotlib, wxpython et win32com ou les modules xlrd/xlwt de Machin. [Snip] J'ai rencontré des problèmes avec tous ces modules" ... mais je n'ai pas dit quoi problèmes que vous avez eu avec "les modules xlrd/xlwt de Machin". S'il vous plaît élaborer. J'ai empaqueté des exécutables en utilisant les deux modules moi-même sans aucun problème. Les seuls problèmes qui ont été soulevés dans le python-excel google-groupe ont été auto-infligé IIRC. –
@John, je devrais dire, sauf avec xlrd/xlwt et, en fait, soit ne me souviens pas maintenant un spécifique avec win32com. J'ai corrigé le texte en conséquence. – joaquin