probleme module manquant pendant compilation

goomie
probleme module manquant pendant compilation

:(
bonsoir,
je fait un programme qui gere les entrees et les sortie et je dois faire un executable de ce dernier.
j uitlise python25,mysqldb,pygtk,vista et lors de la compilation en mode console apres avoir creer l executable il y a un message me disant qu il manque des modules gdk,ltihooks,gobject.timeout_add,pourtant mon programme fonctionne correctement je pense que c est un probleme de distribution.
si qq a deja eu se probleme oi connais la reponse a ce probleme svp aidez-moi!!!!!!!!!!

fredericmazue

Quote:
je fait un programme qui gere les entrees et les sortie et je dois faire un executable de ce dernier.

Pardonne moi, mais ce que tu nous dis là ne veux rien dire.
En plus un exécutable en Python c'est assez rare...

Quote:
lors de la compilation en mode console

Compilation en mode console :shock: En Python :?: sans blague :?:

Quote:
creer l executable

Mais enfin de quoi on parle là ?

Quote:
qu il manque des modules gdk

Pour autant que je sache, le module gdk n'existe pas en Python. Le module gtk.gdk oui, mais si tu as gtk, gdk ne peut pas manquer.

Quote:
pourtant mon programme fonctionne correctement

Si ton programme fonctionnait correctement, comme tu dis, tu n'aurais pas de message d'erreur....

Quote:
je pense que c est un probleme de distribution

Je ne pense pas.
Je pense que c'est un problème entre la chaise et le clavier.
Mets un peu d'ordre dans tes idées et on essaiera de t'aider. Parce que pour le moment même si on voulait on ne pourrait pas, à l'impossible nul n'est tenu....
bsadacheng

Le problème peut venir des import de module.
Python ne charge pas obligatoirement tous le contenu
d'un module après un import * ou un import module_name. C'est à l'appel d'une routine d'un module que Python va aller voir si la classe ( par ex ) existe dans le module et la charge. Tant que le source est disponible pas de probleme. Si tu fabrique un exe via py2exe ou pyInstall
alors il est tout a fait possible quún module ne soit pas chargé
pendant la generation de l'exe, et ça plante. J'ai ce probleme dans une
appli qui construit dynamiquement des noms de module à importer.
Je n'ai pas encore réussi a generer un exe qui marche vraiement.
Voir la doc de Python sur les mecanismes de import pour plus.
Une chose a essayer c'est de declarer explicitement tous les module ET
sous modules dans des clauses import module.sub.subsub ..... etc
Bon courage.

fredericmazue

Quote:
Python ne charge pas obligatoirement tous le contenu
d'un module après un import * ou un import module_name.

En effet..
Quote:
Si tu fabrique un exe via py2exe ou pyInstall
alors il est tout a fait possible quún module ne soit pas chargé
pendant la generation de l'exe, et ça plante.

Normalement pas.
Quote:
J'ai ce probleme dans une
appli qui construit dynamiquement des noms de module à importer.

Ah oui mais là c'est un cas très particulier. Et c'est normal car a l'impossible nul n'est tenu. Un outil tel que py2exe analyse les import en début de fichier justement, mais rien de plus.
Ce qui montre bien que "l'exe" généré n'en est pas un en fait. c'est plutôt une distribution partielle de Python avec les modules requis à l'exécution d'un script. L'intérêt est de pouvoir avoir lancer un script Python sur une machine sans installer Python dessus. Mais le tout se comporte comme un interpréteur Python, pas comme un "exécutable". Donc dans ton cas quand le script arrive à la génération dynamique de l'import, l'interpréteur cherche à faire l'import à ce moment seulement et c'est normal que ça ne puisse pas être trouvé.

Maintenant je ne suis pas sûr que tout ce que nous disons là concerne vraiment l'incompréhensible post original.

CraftCoding
Compiler simplement avec Py2Exe

1.Installer "python-2.5.1.msi" si vous ne l'avez pas encore fait
et "py2exe-0.6.6.win32-py2.5.exe" dans l'ordre.

2.Mettre "Py2Exe.exe"
dans le répertoire d'installation de Python25
"C:\Python25"

3.générer un fichier "setup.py" avec "SetupPyGenerate.exe"
il vous demanderas un nom de fichier *.py donc
indiquer le nom du fichier que vous voulez compiler

dans le fichier "setup.py":

   
   from distutils.core import setup 
   import py2exe 
   setup(console=["Nom Du Script A Compiler.py"])

4.Mettre "Py2Exe.exe", "setup.py" & votre Script a Compiler
dans le répertoire d'installation de Python25
"C:\Python25"

5.Executer "Py2Exe.exe" une fois le processus terminer
une fenetre s'ouvre a l'endroit ou votre Executable
à été créer

Ps:Je vous est mis toute mes sources Delphi, Dev-Cpp, Batch.

download src+bin

je vous dis @++

by Craft