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.
En effet..
Normalement pas.
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.