2009-12-18 10 views

Répondre

1

Je dois encore trouver quelque chose qui ne peut pas gérer py2exe en fait, bien que de temps en temps, il a pris du retard des développements en Python lui-même. (Par exemple, pendant un certain temps, il a eu des problèmes avec les nouvelles importations absolues, mais je crois que cela a été résolu, mais pas avec les œufs, mais je ne sais pas si cela a été résolu.)

Je ne vois pas pourquoi vous auriez un problème avec PyCrypto, car ce paquet n'a rien de spécial comparé à beaucoup d'autres qui fonctionnent bien. C'est un tas de pure Python plus une poignée de fichiers .pyd, et certainement py2exe traite bien avec ceux-ci. Voici un exemple, en utilisant le code tiré du site PyCrypto:

from Crypto.Cipher import DES 

def main(): 
    obj=DES.new('abcdefgh', DES.MODE_ECB) 
    plain='Thvqb ina Ebffhz vf n fcnpr nyvra.'.encode('rot13') 
    ciph=obj.encrypt(plain+' ' * 6) 
    print obj.decrypt(ciph) 

if __name__ == '__main__': 
    import sys 
    if sys.argv[1:] == ['py2exe']: 
     from distutils.core import setup 
     import py2exe 
     setup(console=[dict(script='script.py')], 
      options={'py2exe': {'excludes': ['Tkinter'] }}) 

    else: 
     main() 

Enregistrer sous script.py, construire avec script py2exe et courir avec dist\script pour voir la sortie.

+0

Cela fonctionnerait-il avec m2crypto, puisque c'est juste un emballage? – Chris

+0

@Chris: Faites une application de test et découvrez. – Brian

+0

@Chris, si par "juste un emballage" vous voulez dire "pur Python", alors certainement ce serait. Py2exe n'a rien à faire de particulier pour un paquet générique par rapport à un autre. Si un paquet fait quelque chose d'exotique, il peut avoir besoin d'une manipulation spéciale, mais a) la plupart des paquets ne sont pas exotiques, et b) tout paquet populaire aura déjà été traité longtemps avant que vous ne l'ayez trouvé. –