"최고"는 없습니다. 그것은 전적으로 귀하의 상황에 달려 있습니다.
단일 클래스의 경우 네이티브 C 파이썬 API가 너무 어렵지는 않지만 이지만 전체 모듈을 만든 다음 클래스를 만들어야합니다. 절차보다 절차 적 인터페이스를 노출하면 이 더 간단 해집니다. 장치 인스턴스가 하나만있는 경우이 이 적절한 해결 방법입니다.
SWIG는 C++ 클래스 정의를 가져 오는 데 매우 유용하며 은이를 포함하는 Python 모듈을 생성합니다. 결과적으로 코드는 비교적 복잡합니다. SWIG는 모든 가능한 파이썬 버전을 포함하기 때문에; 2.7 또는 그 이후 (그리고 아마도 조금 더 일찍), 중간 파이썬없이 C++에서 직접 모든 것을 할 수 있습니다.
Boost는 템플릿을 광범위하게 사용합니다. 문제에 대한 적절한 해결책은 실제로 이 아닙니다. 메타 프로그래밍이 아닌 외부 도구를 사용하면 상대적으로 단순한 무언가를 위해 복잡성을 많이 추가합니다. 여전히 기본 복잡도로 인해 이 두렵지 않으면 이 사용하기 어려울 수도 있습니다.
저는 Cython에 익숙하지 않습니다. 당신이 가진 모든 네이티브 C API를 사용하여 간단한 클래스, 의 인스턴스 인 경우
전 세계적으로 아마 더 어려운 다른 솔루션에 비해 없으며, 추가 내부 복잡성의 최소 소개합니다.
지금은이 클래스의 인스턴스 하나만 필요합니다. 그러나 클래스의 여러 인스턴스를 처리 할 수있는 것이 훨씬 더 복잡하지 않으면 그만한 가치가 있다고 생각합니다. – Phyks
죄송합니다, 마지막 코멘트가 엉망이되었습니다 ... : 지금은이 클래스의 인스턴스 하나만 필요합니다. 그러나 클래스의 여러 인스턴스를 처리 할 수있는 것이 훨씬 더 복잡하지 않으면 그만한 가치가 있다고 생각합니다. 나는 생성 된 파이썬 코드가 파이썬 3.3+ 호환이 필요하다. SWIG 및 표준 C API에 대해 살펴 보겠습니다. – Phyks
좀 더 복잡합니다. 모듈과 함수를 먼저 생성 한 다음 클래스를 추가해야합니다. 클래스를 정의하는 것은 복잡하지 않지만 자세한 정보입니다. 예를 들어, 작성해야하는 막대한 구조가 있습니다. –