【问题标题】:AttributeError: module 'pandas' has no attribute 'tslib' when I use blaze moduleAttributeError:当我使用 blaze 模块时,模块 'pandas' 没有属性 'tslib'
【发布时间】:2025-12-23 10:45:10
【问题描述】:

我有以下环境

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/

请告诉我解决此问题的最佳解决方案是什么...

【问题讨论】:

    标签: python-3.x pandas anaconda conda miniconda


    【解决方案1】:

    我在github找到了解决方案。

    odo 包内的pandas.py 文件存在问题。所以在 Ubuntu 中你需要去Computer/usr/local/lib/python3.8/dist-packages/odo/backends/ 并打开pandas.py。比第94行改

    pd.tslib.NaTType
    

    type(pd.NaT)
    

    【讨论】:

    • 哎哟。这应该通过 blaze 解决,而不是猴子修补你的 pandas。
    【解决方案2】:

    我在 odo 中遇到了类似的问题,它具有 blaze 依赖性,我安装了 github 包,它很好。尝试安装 blaze 的 GitHub 版本,看看它是否有效。

    【讨论】:

      最近更新 更多