web-dev-qa-db-fra.com

python 3.x ImportError: Aucun module nommé 'cStringIO'

Comment résoudre un ImportError: No module named 'cStringIO' sous Python 3.x?

47
jvi

De Python 3.0 changelog;

Les modules StringIO et cStringIO ont disparu. Importez plutôt le module io et utilisez io.StringIO ou io.BytesIO pour le texte et les données, respectivement.

De la Python 3), on peut voir que io.StringIO devrait être utilisé à la place:

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()

Référence: https://docs.python.org/3.4/library/io.html

79
Simeon Visser

J'ai eu le même problème parce que mon fichier s'appelait email.py. J'ai renommé le fichier et le problème a disparu.

6
Maeda