cython 튜토리얼 Cython 시작하기

Cython이란 무엇입니까?

Cython 프로그래밍 언어는 정적 유형 지정, C 함수를 직접 호출하는 기능 및 기타 여러 기능과 같은 C로 Python을 풍부하게합니다. 이렇게하면 Python과 유사한 구문을 사용하면서 C 수준 성능에 도달 할 수 있습니다.

어떻게 작동합니까?

Cython 코드는 cython 소스 - 소스 컴파일러를 사용하여 컴파일되어 C 또는 C ++ 코드를 생성합니다.이 코드는 C 컴파일러를 사용하여 컴파일 할 수 있습니다. 파이썬이나 실행 파일에서 가져올 수있는 확장을 만들 수 있습니다.

순수 Python과 달리 Cython이 얻을 수있는 주요 성능 향상은 CPython API를 우회하는 데 있습니다. 예를 들어, 두 개의 정수를 더할 때 파이썬은 각 변수에 대한 유형 검사를 수행하고 발견 된 유형을 충족시키는 추가 함수를 찾고 해당 함수를 호출합니다. Cython에서 생성 된 C 코드에서 유형은 이미 알고 있으며 오직 하나의 함수 호출 만 수행됩니다. 따라서 Cython은 유형이 명확한 수학 문제에 특히 효과적입니다.

내 코드 속도를 높이려면 어떻게 사용합니까?

일반적인 사용 사례는 Cython을 사용하여 프로그램 속도를 높이 려 할 때 코드를 프로파일 링하고 계산 비싼 부품을 컴파일 된 Cython 모듈로 이동하는 것입니다. 이렇게하면 코드의 대부분에 대해 Python 구문을 유지하고 가장 필요한 곳에 빠른 속도를 적용 할 수 있습니다.

Cython 설치하기

사이 썬을 사용하려면 두 가지가 포함되어 필요하신 사이 썬 패키지 자체이다 cython (예를 들어, NumPy와에 대한) 여러 C와 파이썬 라이브러리 소스 - 소스 컴파일러와 사이 썬 인터페이스를. cython 컴파일러에 의해 생성 된 C 코드를 컴파일하려면 C 컴파일러가 필요합니다.

1 단계 : Cython 설치

시스템 불가 지론

Cython 은 여러 시스템 불가지론 패키지 관리 시스템과 함께 설치할 수 있습니다. 여기에는 다음이 포함됩니다.

  1. pip 또는 easy_install을 통한 PyPI :

    $ pip install cython
    $ easy_install cython
    
  2. 아나콘다 콘도를 사용 :

    $ conda install cython
    
  3. enpkg 패키지 관리자를 사용하여 Enthought 캐노피 :

    $ enpkg cython
    

또한 소스 코드는 github 에서 다운로드하여 다음을 사용하여 수동으로 설치할 수 있습니다.

$ python setup.py install

우분투, 데비안

우분투에서는 cython 과 cython3 패키지를 사용할 수 있습니다. 이들은 위에서 언급 한 설치 옵션보다 오래된 버전을 제공합니다.

$ apt-get install cython cython3

Windows

Windows의 경우 pip를 사용하여 설치할 수있는 .whl 파일 은 타사에서 제공합니다. Windows에서 .whl 파일을 설치하는 방법에 대한 자세한 내용은 여기를 참조하십시오 .

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com


2 단계 : C 컴파일러 설치

Cython에 의해 생성 된 C 파일을 컴파일하려면 C 및 C ++ 용 컴파일러가 필요합니다. gcc 컴파일러가 권장되며 다음과 같이 설치할 수 있습니다.

우분투, 데비안

build-essential 패키지에는 필요한 모든 것이 들어 있습니다. 다음을 사용하여 리포지토리에서 설치할 수 있습니다.

$ sudo apt-get install build-essential

XCode 개발자 도구 에는 gcc와 유사한 컴파일러가 포함되어 있습니다.

Windows

MinGW (Windows 용 Minimalist GNU)에는 gcc의 Windows 버전이 포함되어 있습니다. Visual Studio의 컴파일러를 사용할 수도 있습니다.

안녕하세요 세계

파이썬에서 사용되기 전에 Cython pyx 파일을 C 코드 ( cythonized )로 변환하고 컴파일해야합니다. 일반적인 접근법은 확장 모듈을 생성 한 다음 파이썬 프로그램으로 가져 오는 것입니다.

암호

이 예제에서는 세 개의 파일을 만듭니다.

  • hello.pyx 에는 Cython 코드가 들어 있습니다.
  • test.py 는 hello 확장을 사용하는 Python 스크립트입니다.
  • setup.py 는 Cython 코드를 컴파일하는 데 사용됩니다.

hello.pyx

from libc.math cimport pow

cdef double square_and_add (double x):
    """Compute x^2 + x as double.

    This is a cdef function that can be called from within
    a Cython program, but not from Python.
    """
    return pow(x, 2.0) + x

cpdef print_result (double x):
    """This is a cpdef function that can be called from Python."""
    print("({} ^ 2) + {} = {}".format(x, x, square_and_add(x)))

test.py

# Import the extension module hello.
import hello

# Call the print_result method 
hello.print_result(23.0)

setup.py

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

# define an extension that will be cythonized and compiled
ext = Extension(name="hello", sources=["hello.pyx"])
setup(ext_modules=cythonize(ext))

컴파일

이것은 cython hello.pyx 를 사용하여 코드를 C로 변환 한 다음 gcc 사용하여 컴파일 할 수 있습니다. 더 쉬운 방법은 distutils가 이것을 처리하도록하는 것입니다 :

$ ls
hello.pyx  setup.py  test.py
$ python setup.py build_ext --inplace
$ ls
build  hello.c  hello.cpython-34m.so  hello.pyx  setup.py  test.py

공유 객체 (.so) 파일은 Python에서 가져와 사용할 수 있으므로 이제 test.py 실행할 수 있습니다.

$ python test.py
(23.0 ^ 2) + 23.0 = 552.0 

[출처] https://learntutorials.net/ko/cython/topic/2925/cython-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
412 [python][flask] (flask) windows에서 flask와 apache 연동 file 졸리운_곰 2023.01.17 7
411 [python, 인터넷] Web Search Engine, 인터넷 검색 엔진 구현 file 졸리운_곰 2023.01.16 4
410 [Amazon S3 clone] minio 설치 및 파이썬 업로드 스크립트 졸리운_곰 2022.12.24 6
409 [Python][flask] Flask 로 Rest API 구현하기 - 개발환경구축 file 졸리운_곰 2022.12.24 4
408 [python][자료구조] Dropbox API 사용하기 (with python) 졸리운_곰 2022.12.03 7
407 [Python][자료구조] SQLAlchemy Tutorial(한글) - 2 졸리운_곰 2022.12.03 4
406 [Python]][자료구조] SQLAlchemy Tutorial(한글) - 1 졸리운_곰 2022.12.03 11
405 [python] [Anaconda]가상환경 설치,삭제 file 졸리운_곰 2022.12.03 7
404 [python][머신러닝] Scikit-learn Tutorial: Machine Learning in Python file 졸리운_곰 2022.11.29 13
403 [python, 그래픽] [파이썬 활용] 마우스 자동화 (pyautogui) file 졸리운_곰 2022.11.26 30
402 [python, 그래픽] 파이썬 자동화 툴 - pyautogui 사용하기 file 졸리운_곰 2022.11.26 6
401 [Python] 파이썬 프로젝트의 구조 file 졸리운_곰 2022.11.18 27
400 [python] [Python] 파이썬 Source의 기본 형태 file 졸리운_곰 2022.11.18 7
» cython 튜토리얼 Cython 시작하기 졸리운_곰 2022.11.13 8
398 [python] 파이썬 스케줄 수행 - schedule, apscheduler file 졸리운_곰 2022.11.13 20
397 [python 일반] python 난독화 및 실행파일 한 번에 만들기 졸리운_곰 2022.11.06 29
396 [python] 파이썬(sklearn) 사이킷런(sklearn) 기초 졸리운_곰 2022.08.20 27
395 [python] scikit-learn이란 file 졸리운_곰 2022.08.20 21
394 [python] Apache Airflow 소개 및 실습하기(기초) file 졸리운_곰 2022.07.25 39
393 [anaconde3][python] Create environment for tensorflow 1.4 in Anaconda 3 졸리운_곰 2022.07.02 34
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED