AttributeError: module 'numpy' has no attribute 'long'
というエラーが発生したので対処した。
1. 前提 / 環境情報
以下の環境で発生
item | version |
---|---|
Ubuntu | 20.04.6 LTS |
Python | 3.8.20 |
mmdet3d (mmdetection3d) | 0.17.2 |
numba | 0.48.0 |
numpy | 1.24.4 |
2. エラー発生状況
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/work_dir/MapTR/projects/mmdet3d_plugin/__init__.py", line 5, in <module>
from .datasets.pipelines import (
File "/work_dir/MapTR/projects/mmdet3d_plugin/datasets/__init__.py", line 1, in <module>
from .nuscenes_dataset import CustomNuScenesDataset
File "/work_dir/MapTR/projects/mmdet3d_plugin/datasets/nuscenes_dataset.py", line 5, in <module>
from mmdet3d.datasets import NuScenesDataset
File "/work_dir/MapTR/mmdetection3d/mmdet3d/datasets/__init__.py", line 4, in <module>
from .custom_3d import Custom3DDataset
File "/work_dir/MapTR/mmdetection3d/mmdet3d/datasets/custom_3d.py", line 10, in <module>
from ..core.bbox import get_box_type
File "/work_dir/MapTR/mmdetection3d/mmdet3d/core/__init__.py", line 4, in <module>
from .evaluation import * # noqa: F401, F403
File "/work_dir/MapTR/mmdetection3d/mmdet3d/core/evaluation/__init__.py", line 3, in <module>
from .kitti_utils import kitti_eval, kitti_eval_coco_style
File "/work_dir/MapTR/mmdetection3d/mmdet3d/core/evaluation/kitti_utils/__init__.py", line 2, in <module>
from .eval import kitti_eval, kitti_eval_coco_style
File "/work_dir/MapTR/mmdetection3d/mmdet3d/core/evaluation/kitti_utils/eval.py", line 4, in <module>
import numba
File "/usr/local/lib/python3.8/site-packages/numba/__init__.py", line 15, in <module>
from . import config, errors, _runtests as runtests, types
File "/usr/local/lib/python3.8/site-packages/numba/types/__init__.py", line 110, in <module>
long_ = _make_signed(np.long)
File "/usr/local/lib/python3.8/site-packages/numpy/__init__.py", line 320, in __getattr__
raise AttributeError("module {!r} has no attribute "
AttributeError: module 'numpy' has no attribute 'long'
3. 解決策
pip install numpy==1.23.0
どうやら、 numpy が新しすぎたため、古いライブラリが依存している long
という属性が使えなくてエラーが出ていたらしい。