python - 如何修复“ImportError:无法导入名称'StringIO'”
问题描述
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 0.25.0 已经删除了 pandas.compat。所以回到 0.24.2
pip install "pandas<0.25.0"
或者
pipenv install "pandas<0.25.0"
推荐阅读
- java - JNA - 带有 typedef struct** 参数的回调方法
- javascript - DoPostBack 在 load() jquery 函数中调用 javascript
- javascript - 仅 Linux 上的 Node.js 应用程序中的 Babel 错误
- ios - 设计 UIView 使其可以根据内容高度动态改变其高度
- ruby - Ruby - 使用 nil 参数来支持不同类型的类
- angular - CORS 策略不想与 SignalR 和 ASP.NET 核心一起使用
- mongodb - Mongodb:从文档中的数组中获取最后一项
- google-sheets - 从 QUERY 创建一个 ArrayFormula
- excel - Excel 公式处理单元格的自定义格式
- jquery - 使用 jQuery addClass 或自定义 LoadCSS 函数将 css 应用于单个文本框