Salut,
J'ai un programme python qui marche parfaitement via la console, mais une fois compilé avec py2exe, cxfreeze ou même pyinstaller j'ai un module qui ne fonctionne plus et rend donc mon programme obsolète. Le module en question est "importlib". Je l'utilise pour pouvoir importer dynamiquement un module c'est à dire comme en php pouvoir faire un include du genre :
Le soucis c'est puisque ça ne fonctionne pas, il me retourne un string et non un objet et donc a l'appelle de ce dernier j'ai une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $var = "NomDuModule"; include($var);
voici la déclaration:
La dernière ligne est celle qui me fait défaut, et qui et donc l'équivalent (en non-dynamique) de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 idm = cc.GetModule("idmantypeinfo.tlb") name = str(idm) module = name[9:65] IDMan = importlib.import_module(module)
Comme vous pouvez vous en douter, c'est le UUID que je doit récupérer, d'ou ma manoeuvre puisque évidemment il et unique sur chaque pc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part import comtypes.gen._ECF21EAB_3AA8_4355_82BE_F777990001DD_0_1_0 as IDMan
Et donc à l'appelle de IDMan via la console tout marche parfaitement mais une fois compiler l'appelle de IDMan me donne une erreur puisque ce n'est plus un objet:
Mon soucis est donc de réussir à faire un executable avec un module importlib fonctionnel. Après plusieurs recherche je n'arrive pas à trouver ma réponse, même en modifiant les différents setup.py pour include manuellement le module avant compilation cela ne change rien j'ai toujours le même soucis. Je m'en remet donc à vous
Code : Sélectionner tout - Visualiser dans une fenêtre à part idm1 = cc.CreateObject("IDMan.CIDMLinkTransmitter", None, None, IDMan.ICIDMLinkTransmitter2)
Partager