jvi
jvi

Reputation: 1191

python 3.x ImportError: No module named 'cStringIO'

How do I solve an ImportError: No module named 'cStringIO' under Python 3.x?

Upvotes: 118

Views: 186335

Answers (3)

l001d
l001d

Reputation: 962

I had the issue because my directory was called email. I renamed the directory to emails and the issue was gone.

Upvotes: 0

Simeon Visser
Simeon Visser

Reputation: 122456

From Python 3.0 changelog:

The StringIO and cStringIO modules are gone. Instead, import the io module and use io.StringIO or io.BytesIO for text and data respectively.

From the Python 3 email documentation it can be seen that io.StringIO should be used instead:

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

Upvotes: 191

Maeda
Maeda

Reputation: 1305

I had the same issue because my file was called email.py. I renamed the file and the issue disappeared.

Upvotes: 16

Related Questions