python remote import pandas_datareader fornece ImportError: não é possível importar o nome 'is_list_like'




remote data pandas (5)

Eu encontrei este erro e encontrei um método para resolvê-lo. Minhas versões de pandas e pandas_datareader são 0,23 e 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'

Como o is_list_like é movido para pandas.api.types, altero o arquivo fred.py que está destacado na imagem. Eu substituo from pandas.core.common import is_list_like from pandas.api.types import is_list_like e funciona.

Eu estou trabalhando em um ambiente virtual. Eu sou capaz de importar e trabalhar em pandas sem qualquer erro, mas quando estou tentando 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

está dando o seguinte erro -

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]-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'

No Ubuntu 18.04, usando o Python 3.6, resolvi o erro da seguinte maneira.

cd /home/username/.local/lib/python3.6/site-packages/pandas_datareader

subl fred.py

e eu mudei a primeira linha de código que estava

from pandas.core.common import is_list_like

para

from pandas.api.types import is_list_like

Edite o arquivo fred.py em /your_installation_path/python2.7/site-packages/pandas_datareader e substitua conforme abaixo:

de pandas.core.common import is_list_like #COMMENT IT

de pandas.api.types import is_list_like #ADD


Se você não está trabalhando com pandas_datareader. você precisa verificar se o seu leitor de dados do ambiente conda está instalado ou não, se não instalar, do que você pode importar desta maneira.

import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader as web

Isso se deve ao fato de que is_list_like foi movido de pandas.core.common para pandas.api.types no Pandas 0.23.0. Este problema foi reparado here e fará parte do lançamento do Pandas Datareader 0.7.0. Por enquanto, recomendo usar a versão de desenvolvimento do Datareader. Instruções para instalação podem ser encontradas na documentation .





pandas-datareader