Search code examples
python-3.xstringiocstringio

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


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


Solution

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