python - name - import pandas_datareader da ImportError: no se puede importar el nombre ''is_list_like''
pandas datareader nasdaq (6)
Estoy trabajando en un entorno virtual.
Puedo importar y trabajar en pandas sin ningún error, pero cuando intento
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 el siguiente error -
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''
Edite el archivo fred.py en /your_installation_path/python2.7/site-packages/pandas_datareader y reemplace de la siguiente manera:
desde pandas.core.common import is_list_like #COMMENT IT
desde pandas.api.types import is_list_like #ADD
En Ubuntu 18.04, utilizando Python 3.6, resolví el error de la siguiente manera.
cd /home/username/.local/lib/python3.6/site-packages/pandas_datareader
subl fred.py
y cambié la primera línea de código que era
from pandas.core.common import is_list_like
a
from pandas.api.types import is_list_like
Esto se debe al hecho de que
is_list_like
se ha movido de
pandas.core.common
a
pandas.api.types
en Pandas 0.23.0.
Este problema se ha reparado
here
y será parte de la versión 0.7.0 de Pandas Datareader.
Por ahora, recomendaría usar la versión dev de Datareader.
Las instrucciones para la instalación se pueden encontrar en la
documentation
.
Me encuentro con este error y encontré un método para resolverlo. Mis versiones de pandas y pandas_datareader son 0.23 y 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''
Debido a que
is_list_like
se mueve a pandas.api.types, cambio el archivo fred.py que se resalta en la imagen.
Reemplazo
from pandas.core.common import is_list_like
con
from pandas.api.types import is_list_like
, y funciona.
Si no estás trabajando con pandas_datareader. Usted necesita verificar si el lector de datos de su entorno conda está instalado o no, si no está instalado, entonces puede importar esto de esta manera.
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader as web
Una solución sin cambiar los archivos localmente y omitir el control de versión de su administrador de paquetes (pip) es definir a is_list_like de esta manera:
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
justo antes de
import pandas_datareader as web
Además, este problema se solucionará en la versión pand.0_datareader versión 0.7.0.