Skip to content

Cython #

Find similar titles

8회 업데이트 됨.

Edit
  • 최초 작성자
    둥굴레씨
  • 최근 업데이트
    shlee

Structured data

Category
Programming

Cython, 파이썬(Python)을 위한 C 확장 기술 #

순수한 파이썬 언어로 프로그램을 만들 시 C 언어로 작성된 프로그램에 비해 느리다. 인터프리터 언어인 파이썬 특성상 컴파일 언어인 C 언어에 비해 속도가 느린 것이다. 파이썬이 계속 개발되면서 예전에 비하면 속도가 많이 올라갔지만, 일부분은 C 언어가 더 빠르다. 사이썬은 파이썬 코드를 C 언어로 컴파일 함으로써 속도를 향상 시킨다.

공식 홈페이지 #

[[http://cython.org]]

사용법 #

시작하기 #

scientific Python distributions인 Anaconda, Enthought Canopy, Sage등은 Cython을 기본 번들로 제공하고 있어 추가적인 설정 및 모듈 설치가 필요 없지만, 버전을 업데이트하거나 배포판을 사용하지 않을 경우 아래와 같은 방법으로 설치 및 업데이트할 수 있다.

우선 사전에 필요한 gcc를 설치한다.
Linux : GNU C Compiler (gcc), build-essential, Python Header File이 기본적으로 필요하다. 해당 모듈은 기본 패키지 매니저를 통해 간단하게 설치할 수 있다.

sudo apt-get install build-essential python3-dev

Mac OS : Apple XCode를 설치함으로써 gcc를 사용할 수 있다. 애플스토어보단 사이트를 통해 직접 다운로드받는 것을 권장한다. (탐색 오류가 발생할 수 있으며, 발생 시 필요 시간이 기하급수적으로 늘어난다.)

Image

Windows : 사용할 CPython 프로젝트는 Python이 빌드된 것과 동일한 컴파일러로 확장 모듈(CyThon 모듈 포함)을 빌드할 것을 권장한다. 윈도우에서 Python 사용 시 컴파일러는 일반적으로 Microsoft Visual C/C++(MSVC)이 사용될 것이며, Python에서 사용하는 MSVC의 상세한 내용 및 특정 버전 내용은 WindowsCompilers 이곳을 참고하면 된다.

MSVC대신 윈도우용 gcc인 MinGW로도 사용이 가능하다.

Image

  • Windows 오류 발생 시 : setuptools이 MSVC를 감지하지 못할 경우 PyMSVC에서 해결할 수 있다.

gcc를 설치함으로써 사전 준비는 끝났다. Cython은 pip명령어를 사용하여 간단하게 설치할 수 있다.

pip install Cython

최신 Cython 릴리스는 항상 Cython 공식 페이지에서 다운로드할 수 있다. tarball 또는 zip 파일의 압축을 풀고 디렉터리로 이동한 후 다음을 실행한다.

python setup.py install

일회성 빌드의 경우(예: CI/테스트용) PyPI에서 제공되는 휠 패키지 중 하나가 포함되지 않는 플랫폼에서 컴파일되지 않은(느린) 버전의 Cython을 설치하는 것이 전체 소스 빌드보다 훨씬 빠르다.

pip install Cython --install-option="--no-cython-compile"

기본 변환 #

fib.pyx라는 파일을 작성한다.

def fib(n):
    """Print the Fibonacci series up to n."""
    a, b = 0, 1
    while b < n:
        print b,
        a, b = b, a + b

setup.py 파일을 작성한다.

from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules=cythonize("fib.pyx"),
)

아래 커맨드를 실행한다.

$ python setup.py build_ext --inplace

아래와 같이 사용가능하다.

    >>> import fib
>>> fib.fib(2000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

참고출처 #

Installing Cython

Suggested Pages #

0.0.1_20230725_7_v68