Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

email et py2exe

3 réponses
Avatar
Fouff
Bonjour.

Un soucis qui me tiens depuis un petit moment maintenant.
J'ai un prog qui utilise le module email (python 2.6).
Celui-ci fait (en version courte) :

import email
from email.generator import Generator
...
def __formatMail(...):
msg = email.MIMEMultipart.MIMEMultipart('related')
...
msg_text = email.MIMEText.MIMEText(text.encode('utf-8'))
...
gen = Generator(msgText, mangle_from_=False, maxheaderlen=80)
...
return ...
...


Je crée mon exe sans soucis avec py2exe (version 0.6.9).
J'exécute le programme, m'arrange pour tester la partie envoi d'email (justement ;-) )
et là ... pas bon !
j'ai droit à ce ù**ù*^ù$^* de message :
File "email\__init__.pyc", line 79, in __getattr__


Message complet :
Exception in Tkinter callback
Traceback (most recent call last):
File "Tkinter.pyc", line 1410, in __call__
File "cdes.py", line 1739, in clickOnUserButton
File "cdes.py", line 1344, in doRemindUser
File "cdes.py", line 1378, in sendEmailTo
File "cdes.py", line 385, in sendMail
File "cdes.py", line 184, in __formatMail
File "email\__init__.pyc", line 79, in __getattr__
ImportError: No module named multipart


Je précise que j'utilise la forme
email.MIMEMultipart.MIMEMultipart(...)
à la place de
from email.MIMEMultipart import MIMEMultipart
suite à des essais infructueux eux aussi ! (qui me donnaient le même message d'erreur final)

Autant vous dire qu'après plus de 4 heures d'essais et de recherches sur ce message d'erreur,
Il m'énerve au plus haut point !

Quelqu'un aurait-il une idée sur ce qui peux se passer ?
Si tel est le cas, cette personne pourrait-elle m'expliquer ce que je ne fais pas (ou ce que ce
**ù*^de module email fait ou pas).

D'avance merci de votre patience à lire cette demande (un peu défouloir quand même il faut le dire).
Dans l'attente de réponse(s).
Cordialement.
Fouff

3 réponses

Avatar
William Dode
On 30-09-2009, Fouff wrote:
Bonjour.

Un soucis qui me tiens depuis un petit moment maintenant.
J'ai un prog qui utilise le module email (python 2.6).
Celui-ci fait (en version courte) :



...
Je crée mon exe sans soucis avec py2exe (version 0.6.9).


...
ImportError: No module named multipart



Avec py2exe certains modules ne sont pas pris automatiquement, il faut
les forcer avec "includes", en particulier pour les mails :

"email","email.mime.text","email.iterators","email.generator","email.utils","email.mime.multipart",
"email.mime",

a+

--
William Dodé - http://flibuste.net
Informaticien Indépendant
Avatar
Sysadmin
William Dode a écrit :
On 30-09-2009, Fouff wrote:
Bonjour.

Un soucis qui me tiens depuis un petit moment maintenant.
J'ai un prog qui utilise le module email (python 2.6).
Celui-ci fait (en version courte) :



...
Je crée mon exe sans soucis avec py2exe (version 0.6.9).


...
ImportError: No module named multipart



Avec py2exe certains modules ne sont pas pris automatiquement, il faut
les forcer avec "includes", en particulier pour les mails :

"email","email.mime.text","email.iterators","email.generator","email.ut ils","email.mime.multipart",
"email.mime",

a+



J'ai rencontré exactement le même problème, résolu en mettant "ça" dans
le setup.py

import modulefinder
modulefinder.AddPackagePath("mail.mime", "base")
modulefinder.AddPackagePath("mail.mime", "multipart")
modulefinder.AddPackagePath("mail.mime", "nonmultipart")
modulefinder.AddPackagePath("mail.mime", "audio")
modulefinder.AddPackagePath("mail.mime", "image")
modulefinder.AddPackagePath("mail.mime", "message")
modulefinder.AddPackagePath("mail.mime", "application")
Avatar
Fouff
Fouff a écrit :
Bonjour.

Un soucis qui me tiens depuis un petit moment maintenant.
J'ai un prog qui utilise le module email (python 2.6).
Celui-ci fait (en version courte) :

import email
from email.generator import Generator
...
def __formatMail(...):
msg = email.MIMEMultipart.MIMEMultipart('related')
...
msg_text = email.MIMEText.MIMEText(text.encode('utf-8'))
...
gen = Generator(msgText, mangle_from_úlse, maxheaderlen€)
...
return ...
...


Je crée mon exe sans soucis avec py2exe (version 0.6.9).
J'exécute le programme, m'arrange pour tester la partie envoi d'email
(justement ;-) )
et là ... pas bon !
j'ai droit à ce ù**ù*^ù$^* de message :
File "email__init__.pyc", line 79, in __getattr__


Message complet :
Exception in Tkinter callback
Traceback (most recent call last):
File "Tkinter.pyc", line 1410, in __call__
File "cdes.py", line 1739, in clickOnUserButton
File "cdes.py", line 1344, in doRemindUser
File "cdes.py", line 1378, in sendEmailTo
File "cdes.py", line 385, in sendMail
File "cdes.py", line 184, in __formatMail
File "email__init__.pyc", line 79, in __getattr__
ImportError: No module named multipart


Je précise que j'utilise la forme
email.MIMEMultipart.MIMEMultipart(...)
à la place de
from email.MIMEMultipart import MIMEMultipart
suite à des essais infructueux eux aussi ! (qui me donnaient le même
message d'erreur final)

Autant vous dire qu'après plus de 4 heures d'essais et de recherches sur
ce message d'erreur,
Il m'énerve au plus haut point !

Quelqu'un aurait-il une idée sur ce qui peux se passer ?
Si tel est le cas, cette personne pourrait-elle m'expliquer ce que je ne
fais pas (ou ce que ce **ù*^de module email fait ou pas).

D'avance merci de votre patience à lire cette demande (un peu défouloir
quand même il faut le dire).
Dans l'attente de réponse(s).
Cordialement.
Fouff



J'ai trouvé autre chose par rapport aux réponse que j'ai eue (je l'ai trouvé avant de lire ces réponse).
J'en profite pour remercier les sympathiques personnes qui m'ont aidé.

voici :
J'ai ajouté "-p email" à la ligne de commande de py2exe
soit la ligne : setup.py py2exe -p email
Et ça roule du feu de Dieu.

Merci encore pour les réponses.
Cordialement
Fouff