thx- Akzeptieren der @ SimonVissers-Lösung. Ich hätte nicht versuchen sollen, "email" zu installieren, da es als Modul verfügbar ist. Importieren Sie einfach E-Mails in den Code und nehmen Sie die erforderlichen Änderungen am Anwendungscode vor.
jvi
Dies ist ein allgemeines Problem bei der Migration auf 3.x und nicht nur bei der Installation eines bestimmten Pakets, z. B. E-Mail.
smci
Antworten:
116
Aus Python 3.0 Changelog;
Die Module StringIO und cStringIO sind weg. Importieren Sie stattdessen das io-Modul und verwenden Sie io.StringIO oder io.BytesIO für Text bzw. Daten.
Aus der Python 3-E-Mail-Dokumentation geht hervor, dass io.StringIOstattdessen Folgendes verwendet werden sollte:
from io import StringIO
from email.generator import Generator
fp = StringIO()
g = Generator(fp, mangle_from_=True, maxheaderlen=60)
g.flatten(msg)
text = fp.getvalue()
Das io-Modul ist in meiner Python-Umgebung vorhanden. Ich kann jedoch keine E-Mail selbst installieren, was mein Problem war. dh "pip install email" schlägt fehl. Soll ich mich in Code hacken und Änderungen vornehmen, damit er installiert wird?
Jvi
16
@jvi: Sie sollten nicht installieren email, sondern nur import emailals Teil der Python-Standardbibliothek.
Simeon Visser
13
Ich hatte das gleiche Problem, weil meine Datei email.py hieß . Ich habe die Datei umbenannt und das Problem ist verschwunden.
Antworten:
Aus Python 3.0 Changelog;
Aus der Python 3-E-Mail-Dokumentation geht hervor, dass
io.StringIO
stattdessen Folgendes verwendet werden sollte:from io import StringIO from email.generator import Generator fp = StringIO() g = Generator(fp, mangle_from_=True, maxheaderlen=60) g.flatten(msg) text = fp.getvalue()
Referenz: https://docs.python.org/3/library/io.html
quelle
email
, sondern nurimport email
als Teil der Python-Standardbibliothek.Ich hatte das gleiche Problem, weil meine Datei email.py hieß . Ich habe die Datei umbenannt und das Problem ist verschwunden.
quelle