2011-01-29 3 views
2

기본적으로 파이썬에서 (GTK +를 사용하여 직접 작성한) GUI 래퍼를 작성하려고하는데, 관련성이 있다고 생각하지 않습니다. C++로 작성되고 컴파일되었습니다. 사용자가 공유 객체 파일 (linux [* nix?에서 Mac에서 작동하는 방법을 잘 모르겠다] 또는 Windows에서 dll을 사용하여 직접 API를 사용하도록 참조 할 수 있어야합니다. Cython으로 시도한 후 꽤 오랜 시간이 지나서야 내 자신의 확장 기능을 작성할 수 있습니다. 단 하나의 파일 일 뿐이므로 여러 파일을 사용하는 것에 관해서는 온라인으로 찾을 수 없습니다 (실제 프로젝트 이후 파이썬 프로젝트로 가져올 수있는 단일 .so 파일로 컴파일 할 수 있습니다. 수동으로 이동하여 Cython을 사용하고 각 .cpp 파일에 .pyx 파일을 만들고 (많은 파일이 있음) cpp 파일로 컴파일 한 다음 편집하여 make 파일을 사용하여 .so 파일로 컴파일합니다. , 또는 더 자동화 된 방법이 있습니까? (추신 : 나는 개별적으로 Cython과 함께 컴파일을 시도했지만 "#경로/파일"표기법을 좋아하지 않아 대부분의 파일을 컴파일 할 수 없었습니다.)Cython을 사용하여 C++ 공유 객체 라이브러리로 파이썬 확장하기

기타 정보 : ctypes를 사용하여 라이브러리와 인터페이스 할 수 있었지만 매우 익숙하지 않은 파이썬으로 느껴졌습니다. 어쨌든 Cython에 대해 더 많은 경험을 쌓고 싶습니다.

답변

0

당신 수있다 "yourmodule.pyx"라는 이름의 파일을 PXI 모든 다른 파일 이름을 변경하고 수행

다음
include "other1.pxi" 
include "other2.pxi" 

당신이 cythonize 및 컴파일 하나 개의 파일이있을 것이다 : yourmodule.pyx를 .

+0

깔끔한 아이디어입니다. 그러나 내가 한 일은 단순히 .so 파일과 직접 상호 작용 한 C++ 파일을 작성한 다음이를 자체 확장자 (다른 확장자와 대화하는 유일한 목적의 확장자)로 감싼 것입니다. 전체적으로 매우 성공적이었습니다. 그래도 고마워. – Josiah

관련 문제