ModuleNotFoundError:没有名为“ pandas._libs.tslibs.frequencies”的模块

问题描述

我发现了关于同一问题herehere的几个问题

from pyfinance.ols import PandasRollingOLS

我收到以下错误

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/pyfinance/utils.py",line 78,in <module>
    from pandas.tseries.frequencies import FreqGroup,get_freq_code
ImportError: cannot import name 'FreqGroup' from 'pandas.tseries.frequencies' (/usr/local/lib/python3.8/site-packages/pandas/tseries/frequencies.py)

During handling of the above exception,another exception occurred:

Traceback (most recent call last):
  File "<string>",line 1,in <module>
  File "/usr/local/lib/python3.8/site-packages/pyfinance/__init__.py",line 32,in <module>
    from .returns import TFrame,TSeries  # noqa
  File "/usr/local/lib/python3.8/site-packages/pyfinance/returns.py",line 42,in <module>
    from pyfinance import ols,utils
  File "/usr/local/lib/python3.8/site-packages/pyfinance/ols.py",line 15,in <module>
    from pyfinance import utils
  File "/usr/local/lib/python3.8/site-packages/pyfinance/utils.py",line 80,in <module>
    from pandas._libs.tslibs.frequencies import FreqGroup,get_freq_code
ModuleNotFoundError: No module named 'pandas._libs.tslibs.frequencies'

我尝试卸载并重新安装pandas版本1.1.3、1.1.2、1.1.1,但它们均无法正常工作,我只是遇到了相同的错误,然后尝试以以下方式构建pandas:

!python setup.py build_ext --inplace --force

我仍然遇到相同的错误

解决方法

仅供参考

我做了一些挖掘,看起来熊猫更改了它们的api,这导致了所提到的错误。我修改了源代码,并在pyfinance/utils.py中包含了正确的导入:

第77行的内容从:

try:
    from pandas.tseries.frequencies import FreqGroup,get_freq_code
except ImportError:  # 0.24+,or somewhere around then
    from pandas._libs.tslibs.frequencies import FreqGroup,get_freq_code

try:
    from pandas.tseries.frequencies import FreqGroup,get_freq_code
except ImportError:
    from pandas._libs.tslibs.dtypes import FreqGroup
    from pandas.tests.tslibs.test_period_asfreq import get_freq_code

我创建了一个拉取请求here,如果您遇到相同的问题,则可以克隆并安装我的fork

,

确保您拥有正确版本的 pyfinance。安装 0.1.3 解决了我的问题。

https://pypi.org/project/pyfinance/0.1.3/