没有名为 StringIO 的模块

2024-05-21

我有Python 3.6。我想从另一个名为“run.py”的 python 文件执行名为“operation.py”的 python 文件。

In operation.py I do from cStringIO import StringIO。 PyCharm 向我显示一条警告,指出没有名为 StringIO 的模块。我知道从 python3 开始我必须从 io.import StringIO 模块导入 StringIO 模块。然而,当我使用这个输入时,这个模块的功能就不再起作用了。

虽然有警告from cStringIO import StringIO,代码仍然有效(我知道这个导入确实有效,因为我试图将其作为注释,但它无法运行)。问题是,当我尝试通过“run.py”文件运行该文件时,它无法运行并打印以下消息:ModuleNotFoundError: No module named 'cStringIO'.

我尝试用这个PyCharm 中未解决的参考问题 https://stackoverflow.com/questions/21236824/unresolved-reference-issue-in-pycharm但这没有帮助。

为什么“operation.py”会通过警告运行,但“run.py”不会?我该如何解决这个问题?

操作.py:

    from cStringIO import StringIO


    str_io = StringIO()
    g = Generator(str_io, False)
    # There is a full code here...

run.py:

    import operation


    def main():
        operation

The operation.py有警告但运行良好,run.py 失败。


我想你正在寻找io https://docs.python.org/3/library/io.html#io.StringIOPython 3.x 中的模块。cStringIO(这是一个 Python 2 模块,是更快的版本StringIO, see here https://docs.python.org/2/library/stringio.html#module-cStringIO)被替换为io,以及许多其他变化。看here https://docs.python.org/3/whatsnew/3.0.html?highlight=cstringio了解更多相关信息。

历史记录:这就是我们不再两者兼得的原因cStringIO and StringIO:

Python 2.x 中的一种常见模式是使用纯 Python 实现的一个模块版本,以及作为 C 扩展实现的可选加速版本;例如,pickle 和 cPickle。这给这些模块的每个用户带来了导入加速版本和回归纯 Python 版本的负担。在Python 3.0中,加速版本被认为是纯Python版本的实现细节。用户应始终导入标准版本,该版本会尝试导入加速版本并回退到纯 Python 版本。 pickle / cPickle 对接受了这种处理。配置文件模块在 3.1 的列表中。 StringIO模块已经变成了io模块中的一个类。 (Source https://docs.python.org/3/whatsnew/3.0.html#library-changes)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有名为 StringIO 的模块 的相关文章

随机推荐

  • 创建 Cookie 时需要帮助

    我有一个名为yes和另一个名叫no
  • 搜索多个字段

    我想我没有正确理解 django haystack 我有一个包含多个字段的数据模型 我希望搜索其中两个字段 class UserProfile models Model user models ForeignKey User unique
  • 外部实体更改后索引不更新

    我目前正在开发一个项目 使用 JPA 2 1 保存数据并使用 hibernate search 4 5 0 final 搜索实体 映射类和索引后 搜索工作正常 但是 当我更改值时描述B 类从 someStr 到 anotherStr 数据库
  • 重定向到 /admin/login/ 结果为 302

    当用户未经身份验证时 我尝试重定向到登录页面 在我的settings py我的课程有 MIDDLEWARE CLASSES path to AuthRequiredMiddleware 这是我的课程 class AuthRequiredMi
  • 改进迭代文本解析的 clojure lazy-seq 使用

    我正在编写一个 Clojure 实现这次编码挑战 http biostar stackexchange com questions 1759 code golf mean length of fasta sequences 尝试找出 Fas
  • XPATH 查询、HtmlAgilityPack 和提取文本

    我一直在尝试从名为 tim new 的类中提取链接 我也得到了解决方案 给出了解决方案 片段和必要的信息here https stackoverflow com questions 2982862 extracting a table ro
  • 如何使用 Swipe 视图实现 Android TabLayout 设计支持库

    我将使用 android TabLayout 设计支持库 但我不知道如何使用滑动视图 这是我的代码 XML
  • phpstorm xdebug 与 symfony2 项目

    我正在尝试使用 xdebug 和 phpstorm 调试 symfony2 应用程序 我的本地开发环境是Ubuntu 14 04 with apache2 Xdebug版本是2 2 7 我在另一个 php 不是 symfony2 项目上使用
  • 如何在android中画一条曲线?

    我是 Android 新手 正在开发一个关于绘制线条的示例项目 我想画一条连接两点的曲线或高架线 x1 y1 and x2 y2 我试过canvas drawArc 方法 但是RectF内的值drawArc方法只是圆的 x y 中心点 它在
  • 如何在 iOS Swift 中获取来电的电话号码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在我的应用程序中获取来电者的电话号码 请有人迅速为我提供这个问题的解决方案 您将永远无法获得来电的电话号码 因为这是用户的私人数据
  • scala 如何对元组进行排序?

    我试图了解 scala 如何处理元组的排序和排序 例如 如果我得到了列表 val l for i lt 1 to 5 yield i i 2 Vector 1 2 2 4 3 6 4 8 5 10 scala 知道如何对其进行排序 l so
  • Android:BATTERY_STATUS_DISCHARGING 和 BATTERY_STATUS_NOT_CHARGING 之间的区别

    我想知道这两个标志之间的区别 BatteryManager BATTERY STATUS DISCHARGING And BatteryManager BATTERY STATUS NOT CHARGING 我开发了一个使用这两个标志的应用
  • 叮当错误?命名空间模板类的朋友

    以下代码在 clang 下无法编译 但在 gcc 和 VS 下可以编译 template
  • android 多关键词搜索

    我的应用程序包含搜索功能 它将搜索数据库内的内容 我的搜索的弱点是 我只能使用一个标签进行搜索 例如我只能搜索 猫 它会返回我的数据库中包含 猫 一词的内容 因为我正在使用LIKE在 select 语句期间进行查询 如何使用多个标签进行搜索
  • 通过消除嵌套的 for 循环来改进此代码

    R 包corrplot除其他内容外 还包含这个漂亮的功能 cor mtest lt function mat conf level 0 95 mat lt as matrix mat n lt ncol mat p mat lt lowCI
  • 如何将枚举类型放入字符串列表中?

    这行代码 ShowMessage GetEnumName TypeInfo TAlign 1 返回 alTop 当我想使用字符串变量 TAlign 而不是TAlign时 如何将枚举类型的所有值放入字符串列表中 就像是 ShowMessage
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • 并行化斐波那契序列生成器

    我正在学习并行化 在一项练习中 我得到了一些我应该提高性能的算法 其中之一是斐波那契数列生成器 array 0 0 array 1 1 for q 2 q lt MAX q array q array q 1 array q 2 我怀疑 这
  • SQL Server 读提交隔离级别到底如何工作?

    恕我直言 我发现两个关于如何进行不一致的描述ReadCommitted有效 均在 MSDN 文档中 https msdn microsoft com en us library ms173763 aspx https msdn micros
  • 没有名为 StringIO 的模块

    我有Python 3 6 我想从另一个名为 run py 的 python 文件执行名为 operation py 的 python 文件 In operation py I do from cStringIO import StringI