Использование типизированных словарей при заблаговременной компиляции в numba

#python #jit #numba

#python #jit #numba

Вопрос:

Я пытаюсь использовать заблаговременную компиляцию в numba для функции, которая принимает типизированный словарь numba в качестве входных данных. Файл компилируется без ошибок, но при загрузке результирующего модуля я получаю сообщение об ошибке:

 dlopen(/path_to_module, 2): Symbol not found: __numba_hashsecret_djbx33a_suffix
  Referenced from: /path_to_module
  Expected in: flat namespace
 in /path_to_module
 

Примером функции, которая выдает ту же ошибку, является:

 @jit(nopython=True)
@cc.export('my_func', 'f8(DictType(unicode_type, f8))')
def my_func(d):
    return d['a']   d['b']
 

Эта функция будет вызвана другой функцией в скомпилированном коде.

Ответ №1:

Оказывается, это ошибка в Numba, исправление которой было только что объединено в master пару недель назад:

https://github.com/numba/numba/pull/6410