Ошибка импорта: нет модуля с именем 'llvmlite.llvmpy.ee'

Мне нужно использовать Numba на кластере, работающем на Centos 7.

Однако ИТ-команда не смогла установить llvm 4.0 (нет компоновщика для Centos 7), поэтому они установили llvm 3.9.

После этого я успешно установил llvmlite 0.16.0 и Numba 0.17 с помощью pip.

К сожалению, когда я запускаю простую тестовую программу, я получаю следующую ошибку: ImportError: No module named 'llvmlite.llvmpy.ee'

Вот полная ошибка:

Traceback (последний вызов был последним):

Файл "LINCS_Test.py", строка 17, в

import KerasImageDataGenerator as kidg

Файл "../KerasImageDataGenerator.py", строка 1, в

import KerasBatchTransformation2D as bt

Файл "../KerasBatchTransformation2D.py", строка 1, в

import numba

файл

"/home/exacloud/lustre1/gray_lab/users/Guillaume/Python/lib/python3.4/site-

packages / numba /init.py ", строка 6, в

from . import testing, decorators

файл

"/home/exacloud/lustre1/gray_lab/users/Guillaume/Python/lib/python3.4/site-

packages / numba / decorators.py ", строка 7, в

from .targets import registry

файл

"/home/exacloud/lustre1/gray_lab/users/Guillaume/Python/lib/python3.4/site-

packages / numba / target / registry.py ", строка 3, в

from . import cpu

Файл "/home/exacloud/lustre1/gray_lab/users/Guillaume/Python/lib/python3.4/site- packages/numba/target / cpu.py", строка 6, в

import llvmlite.llvmpy.ee as le

Ошибка импорта: нет модуля с именем 'llvmlite.llvmpy.ee'

Есть идеи как это исправить?

1 ответ

Решение

llvmlite репозиторий содержит таблицу совместимых версий LLVM. В настоящее время это читает:

llvmlite versions   compatible LLVM versions
0.17.0 - ...        4.0.x
0.16.0 - 0.17.0     3.9.x
0.13.0 - 0.15.0     3.8.x
0.9.0 - 0.12.1      3.7.x
0.6.0 - 0.8.0       3.6.x
0.1.0 - 0.5.1       3.5.x

И хранилище Numba поддерживает файл с перечнем требований для llvmlite: requirements.txt, В настоящее время требование:

llvmlite>=0.20

Однако кажется, что у Numba 0.33 есть требование, совместимое с LLVM 3.9.x:

llvmlite>=0.16

Поэтому вам, вероятно, нужно использовать Numba 0.33.x, если вы хотите работать с LLVM 3.9. Учитывая, что numba быстро меняется, кажется, что любая версия до numba 0.30 (первая требует llvmlite 0.16) или после 0.33 (последняя - до llvmlite 0.16) не будет работать, потому что API изменился.

Другие вопросы по тегам