본문 바로가기

반응형

파이썬 C 연동

(2)
[Python] C/C++ 연동 'extension' 모듈 들어가며 지난 포스트에서는 C로 만들어진 공용 라이브러리를 파이썬의 ctypes 모듈을 통해 호출하는 방법에 대해 알아 보았다. 이번 포스트에서는 C로 만들어진 공용 라이브러리를 일반 파이썬 모듈 처럼 사용 할 수 있는 방법에 대해 살펴 보겠다. C언어로 파이썬 확장 모듈을 만드는 과정을 요약하면 아래와 같다. 파이썬으로 부터 인자를 넘겨 받아 처리 할 수 있는 C 함수를 작성한다. 모듈의 메소드 정보를 저장하는 PyMethodDef 배열을 생성한다. 모듈 자체의 정보를 저장하는 PyModuleDef 구조체를 생성한다. PyInit_을 가지는 초기화 함수를 정의한다. setup.py 파일을 생성하여 모듈을 빌드한다. 위 과정을 완료하게 되면 C로 작성된 파이썬 모듈이 생성되고, 아래와 같이 일반 파이썬 ..
[Python] C/C++ 연동 'extension' 들어가며 기본적으로 스크립트 프로그래밍 언어인 파이썬은 사용하기 편리한 대신 컴파일 프로그래밍 언어에 비해 성능이 떨어진다. 이 문제에 대한 해결 방법으로 파이썬에서는 C/C++로 작성된 모듈을 파이썬에서 호출 할 수 있도록 하는 'extension'이라는 기능을 제공한다. 이번 시간에는 파이썬에서 C/C++의 함수를 호출하는 방법에 대해 살펴 보겠다. 본 포스트에 대한 다뤄진 프로젝트의 전체 소스 코드는 [여기]에서 확인 할 수 있다. 동적 라이브러리 만들기 파이썬에서 C/C++로 작성된 코드를 모듈로써 사용하기 위해서는 C/C++로 작성된 동적 라이브러리(윈도우의 경우 dll, 리눅스의 경우 so)가 필요하다. 이번 챕터에서는 각 윈도우와 리눅스에서 동적 라이브러를 만드는 방법에 대해 살펴 보도록 하..

반응형