Как использовать расширение Numba в setup.py? - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь использовать Numba для быстрого расчета. У меня возникла следующая проблема с созданием пакета, использующего расширение Numba.

Я сделал то же самое, что предлагалось на официальном сайте . У меня следующая структура папок:

-test_numba
  -test_numba
    -__init__.py
    -source_module.py
-setup.py

Затем я поместил следующий код в source_module.py:

from numba.pycc import CC

cc = CC('my_module')
cc.verbose = True

@cc.export('multf', 'f8(f8, f8)')
@cc.export('multi', 'i4(i4, i4)')
def mult(a, b):
    return a * b

@cc.export('square', 'f8(f8)')
def square(a):
    return a ** 2

if __name__ == "__main__":
    cc.compile()

И выполнил его. и для init .py я просто импортирую функции:

from .my_module import *

, а для setup.py:

from setuptools import setup
from test_numba.source_module import cc
from setuptools import Extension

if __name__ == "__main__":
    setup(
        name="test_numba",
        version="0.0.1",
        packages=["test_numba"],
        ext_modules=[cc.distutils_extension()]
    )

Я использовал pip install для установки пакета,но расширение не установлено в правильном расположении папки.

    /Users/xxx/miniconda3/envs/py/lib/python3.7/site-packages/my_module.cpython-37m-darwin.so
    /Users/xxx/miniconda3/envs/py/lib/python3.7/site-packages/test_numba-0.0.1.dist-info/*
    /Users/xxx/miniconda3/envs/py/lib/python3.7/site-packages/test_numba/*

и когда я пытаюсь импортировать этот пакет из jupyter. Я получу следующую ошибку: Нет модуля с именем 'test_numba.my_module'

Как это исправить?

...