2010-04-16 8 views
2

파이썬 코드를 작성했으며 "파이썬"을 사용할 때 문제가 없습니다. 그런 다음 "Cython"을 사용하여 C로 변환하고 distutils를 사용하여 공유 라이브러리로 컴파일했습니다. Cython으로 일부 코드를 변경하여 더 빨리 실행했습니다. 그러나 .so 모듈을 가져 와서 "cdef"명령을 사용하려고했으나 명령이 존재하지 않는다고했습니다. 원래 코드 :Cython 코드가 작동하지 않습니다.

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 시간"을 사용하여 시도하지만 난 같은 결과를 얻었다. 어떤 충고?

답변

2

cdef 함수는 Python에 노출되지 않습니다. cpdef은 Cython에 정의 된 C 함수에 Python 래퍼를 제공하기 위해 제공됩니다.

또한 구현시 문제가있는 것보다 timeit을 사용하는 것이 좋습니다.

+1

나는 더 나은 방법이 있다는 것을 알았지 만, 이것은 단지 예일뿐입니다. – None

관련 문제