如何修复“ImportError:无法导入名称'StringIO'”

Posted

技术标签:

【中文标题】如何修复“ImportError:无法导入名称\'StringIO\'”【英文标题】:How to fix "ImportError: cannot import name 'StringIO'"如何修复“ImportError:无法导入名称'StringIO'” 【发布时间】:2019-11-27 23:41:07 【问题描述】:

python 版本是 3.6.6,pandas_datareader 版本是 0.7.0

当我导入 pandas_datareader 时,出现如下错误。

C:\PycharmProjects\Demo\venv\Scripts\python.exe C:/PycharmProjects/Demo/stock.py
Traceback (most recent call last):
  File "C:/PycharmProjects/Demo/stock.py", line 3, in <module>
    import pandas_datareader as wb
  File "C:\PycharmProjects\Demo\venv\lib\site-packages\pandas_datareader\__init__.py", line 2, in <module>
    from .data import (DataReader, Options, get_components_yahoo,
  File "C:\PycharmProjects\Demo\venv\lib\site-packages\pandas_datareader\data.py", line 7, in <module>
    from pandas_datareader.av.forex import AVForexReader
  File "C:\PycharmProjects\Demo\venv\lib\site-packages\pandas_datareader\av\__init__.py", line 3, in <module>
    from pandas_datareader.base import _BaseReader
  File "C:\PycharmProjects\Demo\venv\lib\site-packages\pandas_datareader\base.py", line 11, in <module>
    from pandas.compat import StringIO, bytes_to_str
ImportError: cannot import name 'StringIO'

有人可以帮帮我吗?

【问题讨论】:

你不会碰巧创建了一个名为pandas.compat的模块吧? 我碰巧知道这是python版本的问题。 3.5.x 运行良好。无论如何,谢谢。 如果您找到了解决方案,那么您应该将其添加为答案。 【参考方案1】:

问题是 pandas 0.25.0 已删除 pandas.compat。所以回到 0.24.2

pip install "pandas<0.25.0"

pipenv install "pandas<0.25.0"

【讨论】:

【参考方案2】:

我在 Python3.6 和 Python3.7 上遇到了同样的问题

已降级,在 Python2.7 上运行良好 另外,看到上面有一条评论说 Python3.5 可以工作。

【讨论】:

以上是关于如何修复“ImportError:无法导入名称'StringIO'”的主要内容,如果未能解决你的问题,请参考以下文章

如何修复漏洞

如何修复WMI

PHP网站漏洞怎么修复 如何修补网站程序代码漏洞

如何修复这些漏洞? (npm audit fix 无法修复这些漏洞)

如何修复AppScan漏洞

如何在DOS环境下修复系统