I am working fine with pandas_datareader, then today I installed below both yahoo finance from the below link trying to solve another issue.
No data fetched Web.DataReader Panda
pip install yfinance
pip install fix_yahoo_finance
After the above installtion, pandas_datareader cannot be used anymore. I googled it and I did add the below import, and pandas_datareader is still not working.
from urllib.parse import urlencode
Here is the error:
from pandas_datareader import data
File "C:\Users\yongn\Anaconda3\lib\site-packages\pandas_datareader\__init__.py", line 2, in <module>
from .data import (
File "C:\Users\yongn\Anaconda3\lib\site-packages\pandas_datareader\data.py", line 11, in <module>
from pandas_datareader.av.forex import AVForexReader
File "C:\Users\yongn\Anaconda3\lib\site-packages\pandas_datareader\av\__init__.py", line 6, in <module>
from pandas_datareader.base import _BaseReader
File "C:\Users\yongn\Anaconda3\lib\site-packages\pandas_datareader\base.py", line 7, in <module>
from pandas.io.common import urlencode
ImportError: cannot import name 'urlencode'
I encountered exactly the same error. I am using python anaconda 2020_07 version.
The solution is to use the latest pandas-datareader v0.9 from anaconda channel. If you use the pandas-datareader package from conda-forge which is using older version v0.8.1, you will encounter the error. This is the status as of 20Dec2020.
I ran the command below to install the latest pandas-datareader
package.
conda install -c anaconda pandas-datareader
The error message disappeared and the problem has been fixed.
EDIT: If conda later downgrades pandas-datareader
back to conda-forge older version, there's a fix. See https://stackoverflow.com/a/65386464/1709088