from numba.np.ufunc import _internal initialization of _internal failed without raising an exception

文章讲述了在使用pythontools/create_data_bevdet.py处理nuScenes数据集时遇到的numba和numpy版本不匹配问题,通过升级和降级版本,最终确定numba0.53需要与numpy1.23.5配合使用,建议在requirements/runtime.txt中明确指定numpy版本以避免未来重复出现此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

执行python tools/create_data_bevdet.py生成nuScenes数据集的那些索引文件时发生下面的错误:

raceback (most recent call last):
  File "tools/create_data_bevdet.py", line 9, in <module>
    from tools.data_converter import nuscenes_converter as nuscenes_converter
  File "/hostworkspace/BEVDet/tools/data_converter/nuscenes_converter.py", line 14, in <module>
    from mmdet3d.core.bbox import points_cam2img
  File "/hostworkspace/BEVDet/mmdet3d/core/__init__.py", line 4, in <module>
    from .evaluation import *  # noqa: F401, F403
  File "/hostworkspace/BEVDet/mmdet3d/core/evaluation/__init__.py", line 4, in <module>
    from .kitti_utils import kitti_eval, kitti_eval_coco_style
  File "/hostworkspace/BEVDet/mmdet3d/core/evaluation/kitti_utils/__init__.py", line 2, in <module>
    from .eval import kitti_eval, kitti_eval_coco_style
  File "/hostworkspace/BEVDet/mmdet3d/core/evaluation/kitti_utils/eval.py", line 5, in <module>
    import numba
  File "/opt/conda/lib/python3.8/site-packages/numba/__init__.py", line 43, in <module>
    from numba.np.ufunc import (vectorize, guvectorize, threading_layer,
  File "/opt/conda/lib/python3.8/site-packages/numba/np/ufunc/__init__.py", line 3, in <module>
    from numba.np.ufunc.decorators import Vectorize, GUVectorize, vectorize, guvectorize
  File "/opt/conda/lib/python3.8/site-packages/numba/np/ufunc/decorators.py", line 3, in <module>
    from numba.np.ufunc import _internal
SystemError: initialization of _internal failed without raising an exception

应该是版本有问题,网上查了一下,说是numba和numpy的版本不匹配,于是想升级一下numba到最新的0.58:

但是报错提示mmdet3d要求使用numba 0.53,于是按外网上的建议删掉numpy和numba,然后重新安装numba 0.53,让numba安装时自动安装匹配的numpy版本:

但是执行python tools/create_data_bevdet.py时仍然报同样的错:

只好把自动安装的numpy1.24.4卸载掉,然后再安装网上有人推荐的numpy 1.23.5

然后create_data_bevdet.py就可以成功执行了!看来 numba0.53需要和numpy1.23.5组合才能使用。bevdet的requirements/runtime.txt里对numpy没有指定版本,这就造成了这个问题:

修改这个文件设置numpy==1.23.5,防止下次重新安装环境后再处理nuScenes数据集时出错。

Traceback (most recent call last): File "/home/lkx/virconv/VirConv/tools/test.py", line 21, in <module> from eval_utils import eval_utils File "/home/lkx/virconv/VirConv/tools/eval_utils/eval_utils.py", line 9, in <module> from pcdet.models import load_data_to_gpu File "/home/lkx/virconv/VirConv/pcdet/models/__init__.py", line 6, in <module> from .detectors import build_detector File "/home/lkx/virconv/VirConv/pcdet/models/detectors/__init__.py", line 1, in <module> from .detector3d_template import Detector3DTemplate File "/home/lkx/virconv/VirConv/pcdet/models/detectors/detector3d_template.py", line 7, in <module> from .. import backbones_2d, backbones_3d, dense_heads, roi_heads File "/home/lkx/virconv/VirConv/pcdet/models/backbones_3d/__init__.py", line 2, in <module> from .spconv_backbone import VirConv8x,VirConvL8x File "/home/lkx/virconv/VirConv/pcdet/models/backbones_3d/spconv_backbone.py", line 9, in <module> from pcdet.datasets.augmentor.X_transform import X_TRANS File "/home/lkx/virconv/VirConv/pcdet/datasets/__init__.py", line 7, in <module> from .dataset import DatasetTemplate File "/home/lkx/virconv/VirConv/pcdet/datasets/dataset.py", line 8, in <module> from .augmentor.data_augmentor import DataAugmentor File "/home/lkx/virconv/VirConv/pcdet/datasets/augmentor/data_augmentor.py", line 6, in <module> from . import augmentor_utils, database_sampler File "/home/lkx/virconv/VirConv/pcdet/datasets/augmentor/augmentor_utils.py", line 4, in <module> from ...utils import common_utils,box_np_ops File "/home/lkx/virconv/VirConv/pcdet/utils/box_np_ops.py", line 1, in <module> import numba File "/home/lkx/.conda/envs/spconv2/lib/python3.9/site-packages/numba/__init__.py", line 43, in <module> from numba.np.ufunc import (vectorize, guvectorize, threading_layer, File "/home/lkx/.conda/envs/spconv2/lib/python3.9/site-packages/numba/np/ufunc/__init__.py", line 3, in <module> from numba.
最新发布
03-13
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arnold-FY-Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值