当我使用blaze模块时,出现了AttributeError: module 'pandas' has no attribute 'tslib'错误。

3

I have below environment

Linux "16.04"
Python 3.6.11
conda 4.8(latest)

我的项目有两个依赖项

- blaze=0.11.3=py36_0
- pandas=1.0.5=py36h0573a6f_0

在解决conda和pip依赖关系时,它会抛出以下错误。
Traceback (most recent call last):
AttributeError: module 'pandas' has no attribute 'tslib'
  File "/home/ubuntu/miniconda/envs/my_env/bin/my_project", line 6, in <module>
    from my_project.cli import main
  File "/home/ubuntu/my_project/src/my_project/cli.py", line 3, in <module>
    from my_project.dbi import DatabaseConfig, DatabaseType
  File "/home/ubuntu/my_project/src/my_project/dbi.py", line 3, in <module>
    import blaze as bz
  File "/home/ubuntu/miniconda/envs/my_env/lib/python3.6/site-packages/blaze/__init__.py", line 9, in <module>
    from odo import odo, convert, append, drop, resource
  File "/home/ubuntu/miniconda/envs/my_env/lib/python3.6/site-packages/odo/__init__.py", line 29, in <module>
    from .backends.pandas import pd
  File "/home/ubuntu/miniconda/envs/my_env/lib/python3.6/site-packages/odo/backends/pandas.py", line 94, in <module>
    @convert.register((pd.Timestamp, pd.Timedelta), (pd.tslib.NaTType, type(None)))

看起来blaze无法获取正确的pandas版本。因此,我尝试升级blaze(以便它自动下载最新版本的嵌套pandas),但我发现blaze库没有更新。 https://github.com/blaze/blaze/tags 另外,我发现0.11.3版本与conda的最新版本兼容。 https://docs.anaconda.com/anaconda/packages/py3.6_linux-64/ 请告诉我解决这个问题的最佳方案...
2个回答

3
我在Github上找到了解决方案。
odo包中的pandas.py文件存在问题。因此,在Ubuntu中,您需要进入Computer/usr/local/lib/python3.8/dist-packages/odo/backends/并打开pandas.py。然后在第94行进行更改。
pd.tslib.NaTType

为了

type(pd.NaT)

1
哎呀,这个问题应该通过使用 Blaze 而不是对 Pandas 进行猴子补丁来解决。 - Herbert

0

我之前遇到了一个与odo相关的类似问题,它依赖于blaze。我安装了GitHub上的包,问题解决了。你可以尝试安装GitHub上的blaze版本,看看是否能解决问题。


我尝试从他们最新的GitHub软件包中安装Blaze,但不幸的是,仍然存在同样的问题。 - armiro
我也遇到了这个问题,真让我抓狂,因为我相信Odo会改变我的生活 :) - David Parmenter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接