Код Cython не работает - PullRequest
       11

Код Cython не работает

2 голосов
/ 16 апреля 2010

Я написал немного кода на Python, и он работал нормально при использовании "python". Затем я преобразовал его в C с помощью «Cython» и использовал distutils, чтобы скомпилировать его в общую библиотеку. Затем я изменил часть кода на Cython, чтобы он работал быстрее. Но когда я импортировал модуль .so и попытался использовать команду «cdef», он сказал, что команда не существует. Оригинальный код:

import time as t
def time(function):
    t1 = t.time()
    function()
    t2 = t.time()
    return t2 - t1

Новый код:

import time as t
cdef time(function):
    t1 = t.time()
    function()
    t2 = t.time()
    return t2 - t1

Я пытался использовать "cdef int time", но получил тот же результат. Любой совет?

1 Ответ

2 голосов
/ 16 апреля 2010

cdef функции не доступны для Python. cpdef предоставляется для предоставления оболочки Python для функции C, определенной в Cython.

Кроме того, вам, вероятно, лучше использовать timeit , чем пытаться реализовать это.

...