«Модуль» не может быть вызван с помощью jit-компилятора numba

Я пытаюсь скомпилировать свой код на Python с помощью компилятора jit из numba. Тем не менее, я продолжаю получать ошибку «модуль», которую нельзя вызывать. Как правильно назвать этот декоратор? Сначала я устанавливаю numba, а затем импортирую его как jit. См. код ниже.

!conda install -y numba
import numba as jit

@jit(nopython=True)
def calltree_explicit(S0, K, T, r, sigma, delta, N):
    deltaT = T/float(N)
    u = np.exp(sigma * np.sqrt(deltaT))
    d = 1/u
    p = (np.exp((r-delta)*deltaT) - d)/(u-d)   
    pstar = np.exp(-(r-delta)*deltaT)*p*u
    a = np.ceil(N/2+np.log(K/S0)/(2*np.log(u)))
    return np.exp(-delta*T)*S0*binom.sf(a-1, N, pstar)-binom.sf(a-1, N, 
    p)*np.exp(-r*T)*K

Это должно скомпилировать мой код, чтобы сделать его быстрее

Но я получаю

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-31-3cc5b3c83b9f> in <module>()
----> 1 @jit(nopython=True)
      2 def calltree_explicit(S0, K, T, r, sigma, delta, N):
      3     deltaT = T/float(N)
      4     u = np.exp(sigma * np.sqrt(deltaT))
      5     d = 1/u

TypeError: 'module' object is not callable

person M.Birk    schedule 12.12.2017    source источник


Ответы (1)


Ошибка TypeError: объект 'module' не вызывается, означает, что вы пытаетесь использовать что-то вроде функции, хотя на самом деле это не функция или метод. У вас проблемы с импортом numba, возможно, вам стоит попробовать

from numba import jit
person MikiBelavista    schedule 12.12.2017
comment
В этом случае я получаю сообщение об ошибке: ImportError: невозможно импортировать имя internal_prange - person M.Birk; 12.12.2017
comment
@M.Birk У меня отлично работает на Ubuntu 16.04. - person MikiBelavista; 12.12.2017