如何解决导入numba与numpy时出现的SystemError: initialization of _internal failed错误?
解决Numba _internal初始化失败的导入问题
问题背景
基于时间序列历史数据开发回归分析预测器,项目包含my_project.py、utilities.py、plotter.py和constants.py四个文件,运行时触发Numba相关初始化错误。
关键导入代码
my_project.py
from time import perf_counter from constants import (output_dir, DATAPATH, output_file) from utilities import (dataframe_in_nutshell, excel_reader, info_printer, sys, module_creator, process_discovery, data_explanatory_analysis, excel_reader, df_cleaner, feature_extractor, ml_modelling) from plotter import Plotter
utilities.py
import os import sys import inspect from pathlib import Path from typing import (Iterable, List, Tuple, Optional) from itertools import zip_longest import matplotlib.pyplot as plt import statsmodels.tsa.api as smt import statsmodels.api as sm import pandas as pd from sklearn.metrics import mean_absolute_error from sklearn.preprocessing import scale from pycaret.regression import (setup, compare_models, predict_model, plot_model, finalize_model, load_model) import csv from constants import (np, Path, nan_value, plots_dir, HOURS_PER_WEEK, LAGS_STEP_NUM, rc_params, NA_VALUES, COLUMNS_NAMES, string_columns, LAGS_LABELS, numeric_columns, output_dir, DATAPATH, dtype_dict, train_size) from pprint import PrettyPrinter pp = PrettyPrinter() import seaborn as sns sns.set()
错误栈信息
Traceback (most recent call last): File "c:\Users\username\OneDrive\Desktop\project\my_project.py", line 10, in <module> from utilities import (dataframe_in_nutshell, excel_reader, info_printer, sys, module_creator, File "c:\Users\username\OneDrive\Desktop\project\utilities.py", line 18, in <module> from pycaret.regression import (setup, compare_models, predict_model, plot_model, finalize_model, File "C:\Users\username\anaconda3\envs\py310\lib\site-packages\pycaret\regression.py", line 10, in <module> import pycaret.internal.tabular File "C:\Users\username\anaconda3\envs\py310\lib\site-packages\pycaret\internal\tabular.py", line 48, in <module> import pycaret.internal.preprocess File "C:\Users\username\anaconda3\envs\py310\lib\site-packages\pycaret\internal\preprocess.py", line 27, in <module> from pyod.models.knn import KNN File "C:\Users\username\anaconda3\envs\py310\lib\site-packages\pyod\__init__.py", line 4, in <module> from . import utils File "C:\Users\username\anaconda3\envs\py310\lib\site-packages\pyod\utils\__init__.py", line 4, in <module> from .stat_models import pairwise_distances_no_broadcast File "C:\Users\username\anaconda3\envs\py310\lib\site-packages\pyod\utils\stat_models.py", line 11, in <module> from numba import njit File "C:\Users\username\anaconda3\envs\py310\lib\site-packages\numba\__init__.py", line 42, in <module> from numba.np.ufunc import (vectorize, guvectorize, threading_layer, File "C:\Users\username\anaconda3\envs\py310\lib\site-packages\numba\np\ufunc\__init__.py", line 3, in <module> from numba.np.ufunc.decorators import Vectorize, GUVectorize, vectorize, guvectorize File "C:\Users\username\anaconda3\envs\py310\lib\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
运行环境
- Windows 10系统
- VSCode编辑器
- Conda环境,Python 3.10,所有依赖来自conda-forge频道
解决方案
按优先级尝试以下修复步骤:
降级Numba版本:conda-forge部分Numba版本在Windows Python3.10环境存在兼容性问题,执行命令安装稳定版本:
conda install -c conda-forge numba=0.56.4重新安装Numba及依赖:先卸载现有包再重装,解决损坏的安装文件:
conda remove numba conda install -c conda-forge numba更新Conda环境及所有依赖:解决潜在依赖冲突,确保环境为最新状态:
conda update -n base conda conda update --all创建全新Conda环境:若上述方法无效,搭建干净环境重新安装依赖:
conda create -n ts_prediction python=3.10 -c conda-forge conda activate ts_prediction conda install pandas numpy scikit-learn statsmodels pycaret seaborn matplotlib -c conda-forge临时禁用PyOD的Numba依赖(可选):若无需异常检测功能,在
utilities.py最顶部添加代码禁用Numba:import os os.environ['PYOD_NUMBA_ENABLED'] = '0'
内容的提问来源于stack exchange,提问作者Rebel
相关产品推荐
相关产品推荐

