【问题标题】:python 3.x ImportError: No module named 'cStringIO'python 3.x ImportError:没有名为“cStringIO”的模块
【发布时间】:2015-03-27 19:57:54
【问题描述】:

如何在 Python 3.x 下解决ImportError: No module named 'cStringIO'

【问题讨论】:

  • thx- 接受@SimonVissers 解决方案。我不应该尝试安装“电子邮件”它,因为它可以作为一个模块使用。所以只需将电子邮件导入代码并根据需要对应用程序代码进行更改。
  • 这是迁移到 3.x 时的普遍问题,而不仅仅是安装任何特定的包,例如电子邮件。

标签: python-3.x stringio cstringio


【解决方案1】:

来自 Python 3.0 更新日志:

StringIO 和 cStringIO 模块消失了。相反,导入 io 模块并分别对文本和数据使用 io.StringIO 或 io.BytesIO。

Python 3 email documentation可以看出应该用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()

【讨论】:

  • io 模块存在于我的 python 环境中。但我无法安装电子邮件本身,这是我的问题。即“pip install email”失败。我是否应该破解一些代码并对其进行更改才能安装?
  • @jvi:你不应该安装email,你应该只安装import email,因为它是Python标准库的一部分。
【解决方案2】:

我遇到了同样的问题,因为我的文件名为 email.py。我重命名了文件,问题就消失了。

【讨论】:

    【解决方案3】:

    我遇到了问题,因为我的目录名为 email。我将目录重命名为emails,问题就消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 2013-01-03
      • 2012-12-14
      • 2016-04-16
      • 1970-01-01
      相关资源
      最近更新 更多