Cython – python to C

By | 2024년 2월 23일
Table of Contents

Cython – python to C

OS 가 윈도우인 경우

Visual Studio 2022 Community 를 설치해 줍니다.
커뮤니티 버전의 경우 개인, 5명 이하의 사용자인 기업, 오픈 소스, 학술 연구 및 강의실 학습 환경일 경우 무료로 사용할 수 있는 IDE입니다.

라이센스가 문제가 되는 경우 MinGW 를 설치해야 하는데 복잡해집니다.

설치

pip install cython

my_pow.pyx 생성

# my_pow.pyx
import math

def my_pow(x, y):
    return math.pow(x, y)

setup.py 생성

# setup.py
# -*- coding: utf-8 -*-
from distutils.core import setup
from Cython.Build import cythonize

setup(ext_modules=cythonize("my_pow.pyx"))

빌드

python3 setup.py build_ext --inplace

컴파일된 모듈을 확인할 수 있다.

ls -al
......
build
my_pow.c
my_pow.cpython-310-x86_64-linux-gnu.so
my_pow.pyx
setup.py

윈도우 MSVC 의 경우 my_pow.cp39-win_amd64.pyd 과 같이 pyd (python dll) 파일이 생성됩니다.

my_pow.pyx 수정

my_pow.cpython-310-x86_64-linux-gnu.so 에서 함수를 호출하는 것을 확인하기 위해 아래 내용대로 수정합니다.

# my_pow.pyx
import math

#def my_pow(x, y):
#    return math.pow(x, y)

cython 실행

# test.py
from my_pow import my_pow

print(my_pow(2, 3))
python3 test.py
8.0

답글 남기기