import pandas_datareader дает ImportError: не может импортировать имя 'is_list_like'
Я работаю в виртуальной среде. Я могу импортировать и работать в пандах без каких-либо ошибок, но когда я пытаюсь import pandas_datareader
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime as dt
from matplotlib import style
import pandas_datareader as web
он дает следующую ошибку -
Traceback (most recent call last):
File "stock.py", line 6, in <module>
import pandas_datareader as web
File "/home/xxxxx/django-apps/env/lib/python3.5/site-packages/pandas_datareader/__init__.py", line 2, in <module>
from .data import (DataReader, Options, get_components_yahoo,
File "/home/xxxxx/django-apps/env/lib/python3.5/site-packages/pandas_datareader/data.py", line 14, in <module>
from pandas_datareader.fred import FredReader
File "/home/xxxxx/django-apps/env/lib/python3.5/site-packages/pandas_datareader/fred.py", line 1, in <module>
from pandas.core.common import is_list_like
ImportError: cannot import name 'is_list_like'
(env) [email protected] ~/pyt $ python stock.py
Traceback (most recent call last):
File "stock.py", line 6, in <module>
import pandas_datareader
File "/home/xxxxx/django-apps/env/lib/python3.5/site-packages/pandas_datareader/__init__.py", line 2, in <module>
from .data import (DataReader, Options, get_components_yahoo,
File "/home/xxxxx/django-apps/env/lib/python3.5/site-packages/pandas_datareader/data.py", line 14, in <module>
from pandas_datareader.fred import FredReader
File "/home/xxxxx/django-apps/env/lib/python3.5/site-packages/pandas_datareader/fred.py", line 1, in <module>
from pandas.core.common import is_list_like
ImportError: cannot import name 'is_list_like'
Ответы
Ответ 1
Я встречаю эту ошибку, и я нашел способ ее решения. Мои версии pandas и pandas_datareader составляют 0,23 и 0,6.
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas_datareader
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/dist-packages/pandas_datareader/__init__.py", line 2, in <module>
from .data import (DataReader, Options, get_components_yahoo,
File "/usr/local/lib/python3.6/dist-packages/pandas_datareader/data.py", line 14, in <module>
from pandas_datareader.fred import FredReader
File "/usr/local/lib/python3.6/dist-packages/pandas_datareader/fred.py", line 1, in <module>
from pandas.core.common import is_list_like
ImportError: cannot import name 'is_list_like'
Поскольку is_list_like
перемещается в pandas.api.types, я меняю файл fred.py, который выделен на картинке. Я заменяю from pandas.core.common import is_list_like
from pandas.api.types import is_list_like
, и он работает.
Ответ 2
Решение без изменения локальных файлов и обход контроля версий вашего диспетчера пакетов (pip) состоит в том, чтобы определить is_list_like следующим образом:
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
прямо перед
import pandas_datareader as web
Кроме того, эта проблема будет исправлена в версии pandas_datareader версии 0.7.0.
Ответ 3
Это связано с тем, что is_list_like
был перенесен из pandas.core.common
в pandas.api.types
в Pandas 0.23.0. Эта проблема была восстановлена здесь и станет частью выпуска Pandas Datareader 0.7.0. На данный момент я бы рекомендовал использовать dev-версию Datareader. Инструкции по установке можно найти в документации.
Ответ 4
Если вы не работаете с pandas_datareader. вам нужно проверить, что ваш считыватель данных в среде конда установлен или нет, если он не установлен, чем вы можете импортировать этот путь.
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader as web
Ответ 5
Отредактируйте файл fred.py внутри /your_installation_path/python2.7/site-packages/pandas_datareader и замените, как показано ниже:
from pandas.core.common import is_list_like #COMMENT IT
from pandas.api.types import is_list_like #ADD
Ответ 6
В Ubuntu 18.04, используя Python 3.6, я решил ошибку следующим образом.
cd/home/username/.local/lib/python3.6/site-packages/pandas_datareader
subl fred.py
и я изменил первую строку кода, которая была
from pandas.core.common import is_list_like
в
from pandas.api.types import is_list_like