2010-04-13 27 views
3

im essayant de construire un exécutable (pour Windows 32 bits de XP) à partir d'un script python (qui utilise beaucoup d'oeufs)python problème d'oeuf cx_Freeze

je considérais py2exe (0.6.9), PyInstaller (1.4) et cx_Freeze (4.1.2)

py2exe doesnt like eggs for breakfast

PyInstaller doesnt like python 2.6 for lunch)

donc je suis allé avec cx_Freeze (supposed to support eggs seamlessly since 4.0). mais pour une raison quelconque, il ne le fait pas.

Quels paramètres dois-je transmettre pour que les fichiers à l'intérieur d'un oeuf soient reconnus?

Répondre

0

Vous pouvez essayer la branche 2.6 de PyInstaller qui est liée dans la page que vous avez donnée.

2

Déballez votre module eggs dans votre répertoire source et ajoutez package: [dependencies,] dans votre fichier setup.py. Après les py2exe docs dans py2Exe Docs je l'ai fait ce script que vous exécutez le plus dans votre source exécutant: python unpackEgg.py eggsmodule:

import os 
    import pkg_resources 
    import sys 
    from setuptools.archive_util import unpack_archive 

    def unpackEgg(modulo): 
     eggs = pkg_resources.require(modulo) 
     for egg in eggs: 
      if os.path.isdir(egg.location): 
       sys.path.insert(0, egg.location) 
       continue 
      unpack_archive(egg.location, ".") 
     eggpacks = set() 
     eggspth = open("./eggs.pth", "w") 
     for egg in eggs: 
      print egg 
      eggspth.write(os.path.basename(egg.location)) 
      eggspth.write("\n") 
      eggpacks.update(egg.get_metadata_lines("top_level.txt")) 
     eggspth.close() 

     eggpacks.clear() 


    if __name__ == '__main__': 
    unpackEgg(sys.argv[1]) 
+0

BRILLIENT! cela fonctionne avec cx freeze et python 3.3 aussi, il suffit de changer d'oeuf d'impression pour imprimer (oeuf) –