python 3.x ImportError:没有名为“cStringIO”的模块

Posted

技术标签:

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

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

【问题讨论】:

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

【讨论】:

以上是关于python 3.x ImportError:没有名为“cStringIO”的模块的主要内容,如果未能解决你的问题,请参考以下文章

Python - “ImportError:没有命名模块”

Python 3 ImportError:没有名为“ConfigParser”的模块

Python 3:ImportError“没有名为 Setuptools 的模块”

ImportError:没有名为“urllib2”Python 3的模块[重复]

Python 错误:“ImportError:没有名为 6 的模块”

python ImportError:没有名为win32file的模块