J'ai une application pyobjc exécutée dans une version python 32 bits uniquement qui utilise la bibliothèque gevent. Tout fonctionne très bien en mode alias py2app, mais une fois que je compile un paquet d'applications, le module gevent ne trouve pas la bibliothèque httplib, même si elle est fournie avec le répertoire site-packages.L'application py2app s'exécute correctement en mode alias mais pas lorsqu'elle est associée
File "gevent/monkey.pyo", line 182, in patch_httplib
File "gevent/httplib.pyo", line 8, in <module>
ImportError: No module named httplib
J'ai essayé de faux comme l'a suggéré l'importation (même si le module semble avoir été emballé), mais en vain. Il peut trouver le module gevent.httplib mais pas le module qu'il est supposé utiliser. cela pourrait-il être un problème avec la fonctionnalité de correction de singe?
EDIT: il semble que find_module ne fonctionne pas correctement avec mon paquet py2app. Y at-il une solution de contournement à cela? Je ne pense pas que ce soit un problème avec les modules en pointillés car httplib n'est pas pointé (cela fait partie des librairies python de base)
EDIT 2: donc c'est définitivement imp.find_module. Utiliser importer ('httplib') au lieu de load_module le corrige, mais j'ai dû supprimer la référence à 'httplib' dans sys.modules car il ne peut pas modifier le singe s'il est déjà chargé. Je ne pense pas que ce soit la bonne façon de le faire, bien que le paquet d'application construit fonctionne correctement (httplib est maintenant corrigé par singe et permet init avec HTTPSConnection). Y a-t-il une solution de contournement/correction à ce problème de py2app?
Encore un commentaire sur ma solution: Il serait beaucoup mieux de comprendre pourquoi 'imp.find_module' ne fonctionne pas dans ce cas. Je suppose que py2app aurait besoin d'une nouvelle recette, mais ce n'est qu'une supposition. Des idées à ce sujet? – fviktor
Le hack ci-dessus est également nécessaire sur Windows, au moins avec gevent 0.13.7, Python 2.6. – fviktor