Codice Cython non funziona
Domanda
ho scritto qualche codice Python e ha funzionato bene quando si utilizza il "pitone". Ho poi convertito in C usando "Cython" e distutils utilizzati per la compilazione in una libreria condivisa. Poi ho cambiato parte del codice per Cython quindi sarebbe correre più veloce. Ma quando ho importato il modulo .so e ha cercato di utilizzare il comando che ho avuto "cdef" EDITA detto che il comando non esisteva. Codice originale:
import time as t
def time(function):
t1 = t.time()
function()
t2 = t.time()
return t2 - t1
Nuovo codice:
import time as t
cdef time(function):
t1 = t.time()
function()
t2 = t.time()
return t2 - t1
Ho provato ad utilizzare "cdef tempo int" ma ho ottenuto lo stesso risultato. Qualche consiglio?
Soluzione
funzioni cdef
non siano esposti a Python. cpdef
è previsto per fornire un involucro Python a una funzione C definita in Cython.
Inoltre, siete probabilmente meglio utilizzare timeit che preoccuparsi con l'attuazione del presente .