import pandas_datareader выдает ImportError: невозможно импортировать имя 'is_list_like' - PullRequest
0 голосов
/ 17 мая 2018

Я работаю в виртуальной среде. Я могу импортировать и работать в пандах без каких-либо ошибок, но когда я пытаюсь 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) xxxxx@xxxxx-yyyyy ~/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'

Ответы [ 6 ]

0 голосов
/ 08 августа 2018

Если вы не работаете с pandas_datareader. вам нужно проверить, установлен ли ваш читатель данных среды conda, или нет, если он не установлен, чем вы можете импортировать этот способ следующим образом.

import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader as web
0 голосов
/ 21 июня 2018

Решение без локального изменения любых файлов и обход контроля версий вашего менеджера пакетов (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.

0 голосов
/ 21 июня 2018

В 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
0 голосов
/ 03 июня 2018

Отредактируйте файл fred.py внутри /your_installation_path/python2.7/site-packages/pandas_datareader и замените его следующим образом:

из pandas.core.common import is_list_like #COMMENT IT

из pandas.api.types import is_list_like # ADD

0 голосов
/ 19 мая 2018

Это связано с тем, что is_list_like был перемещен с pandas.core.common на pandas.api.types в Pandas 0.23.0.Эта проблема была устранена здесь и станет частью выпуска Pandas Datareader 0.7.0.Сейчас я бы рекомендовал использовать версию Datareader для разработчиков.Инструкции по установке можно найти в документации .

0 голосов
/ 18 мая 2018

Я встречаю эту ошибку, и я нашел способ ее решить. Мои версии 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'

enter image description here

Поскольку is_list_like перемещен в pandas.api.types, я изменяю файл fred.py, который выделен на рисунке. Я заменяю from pandas.core.common import is_list_like на from pandas.api.types import is_list_like, и это работает.

enter image description here

...