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 3 ImportError:没有名为“ConfigParser”的模块
Python 3:ImportError“没有名为 Setuptools 的模块”
ImportError:没有名为“urllib2”Python 3的模块[重复]