Python 과 C 결합

오늘 참 오랜만에 포인터 놀이를 했다.

오랜만에 해서 그런지 예전의 C언어의 느낌과는 사뭇 다르다는 생각을 했다.

전에 Python을 맥가이버 칼로 비유 했는데 C는 Hammer 정도라고나 할까?
암튼 강력한 언어인거 같다.

오늘 참 많은걸 했다. dll로 되어 있는 문서 filter 모듈내의 함수를 좀 써볼라고 처음에 고생고생하다가 cpp로 filter factory 함수를 만들어 결국 python 랩핑(Wrapping)하는데 성공했다..^^;
퇴근할라고 하니 저녁 11시 (ㅜㅜ) 그래도 가벼운 발걸음으로 돌아올수 있었다.
내일이 기대된다. cpp에서 리턴한 memset 으로 할달한 변수를 어떻게 Python에서 메모리 Free를 시킬까…ㅋㅋ 암튼 기대기대

처음에 ctypes으로 오전 내내 dll 가지고 놀라고 삽질만하다가… 결국포기
(이건 좀더 연구가 필요하다… Python 인터프리터 셀 에서 C포인터 및 자료형을 가지고 놀수 있는 모듈이라 보면 정확하다.)

다음에 Pyrex로 C모듈좀 다루어 볼라다가 Pyrex라는게 하나의 언어라 성질급한 나로서는 안됨 무엇보다 cpp 모듈로 작성되어진걸 Pyrex 언어(?)로 컨버젼해야한다는게 귀찮음

저녁 먹고 새로 잡은게 SWIG라는 툴이다… 이건 파이썬에서 C 함수에 접근할수 있게 인터페이스 cpp 모듈을 만들어 주는 툴이다.. 이걸로 인터페이스 모듈 만들후에 Visual C++ 7.1로 컴파일 과정을 거쳐 최종적으로 Python 인터페이스 모듈과 pyd 파일이 만들어진다.

결국 모듈 만들기에 성공했다. 물론 플랫폼 독립적으로 만들려고 했기때문에 dll은 안쓸라고 했지만 어쩔수 없이 썼다. 하지만 리눅스나 쏠라리스플랫폼으로 간다면 살짝 이 인터페이스 부분하고 라이브러리 컴파일 다시 해주면 되니까…

언어 운운하니 아직은 초보인가 보다…허극…

CC BY-NC 4.0 Python 과 C 결합 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.