web-dev-qa-db-ja.com

python 3.x ImportError: 'cStringIO'という名前のモジュールはありません

Python 3.xの下でImportError: No module named 'cStringIO'を解決するにはどうすればよいですか?

47
jvi

Python 3.0の変更ログから。

StringIOおよびcStringIOモジュールはなくなりました。代わりに、ioモジュールをインポートし、テキストとデータにそれぞれio.StringIOまたはio.BytesIOを使用します。

Python 3メールドキュメントから、代わりにio.StringIOを使用する必要があることがわかります。

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

リファレンス: https://docs.python.org/3.4/library/io.html

79
Simeon Visser

ファイルがemail.pyと呼ばれたため、同じ問題が発生しました。ファイルの名前を変更すると、問題はなくなりました。

6
Maeda