SIP(소프트웨어)

SIP (software)
SIP
원본 작성자필 톰슨
기록 위치C, C++
면허증GPL 등
웹사이트riverbankcomputing.co.uk/software/sip/intro

SIP는 C 또는 C++로 작성된 컴퓨터 프로그램 또는 라이브러리를 스크립팅 언어 Python과 연결하는 데 사용되는 오픈 소스 소프트웨어 도구다.그것은 SWIG의 대안이다.

SIP는 원래 Qt GUI 툴킷용 파이톤 바인딩인 PyQt를 위해 1998년에 개발되었지만 모든 C 또는 C++ 라이브러리의 바인딩 생성에 적합하다.[1]

개념

SIP는 API를 설명하는 사양(.sip) 파일 집합을 취하여 필요한 C++ 코드를 생성한다.그런 다음 Python 확장 모듈을 생성하기 위해 컴파일된다..sip 파일은 본질적으로 몇 가지가 제거된 클래스 헤더 파일이다(SIP는 전체 C++ 파서를 포함하지 않기 때문), 그리고 몇 가지가 추가된 것이다(C++는 API의 작동 방식에 대한 충분한 정보를 항상 제공하지 않기 때문이다).

PyQt v4의 경우, 나는 metasip이라고 불리는 내부 도구를 사용한다.이것은 SIP를 위한 IDE의 일종이다.GCC-XML을 사용하여 최신 헤더 파일을 구문 분석하고 관련 데이터를 XML로 메타십 프로젝트에 저장. 메타십은 이전 버전의 API에 대해 디프프와 동등한 역할을 하며 검토해야 할 변경사항을 플래그로 표시한다.그런 다음 GUI를 통해 변경하고 TODO 목록에서 체크 표시를 한다..sip 파일을 생성하는 것은 단지 버튼 클릭일 뿐이다.내 하위 버전 저장소에서 PyQt v4는 기본적으로 20M XML 파일일 뿐이다.Qt v4의 마이너 릴리스에 대해 PyQt v4를 업데이트하는 것은 약 30분 정도의 작업이다.생성된 코드의 작동 방식 면에서 다른 바인딩 생성기의 작동 방식과 크게 다르지 않다고 생각한다.Python은 확장 모듈을 쓰기 위한 매우 좋은 C API를 가지고 있다 - 그것은 많은 제3자 도구들이 Python 바인딩을 가지고 있는 이유 중 하나이다.모든 C++ 클래스에 대해 SIP 생성 코드는 C에서 구현된 해당 Python 클래스를 생성한다.[2]

— Phil Thompson, developer and maintainer

SIP를 사용하는 주목할 만한 응용프로그램

  • PyQt, 애플리케이션 프레임워크 및 위젯 툴킷 Qt의 python 포트
  • QGIS, 무료 오픈 소스 교차 플랫폼 지리 정보 시스템(GIS)
  • QtiPlot, 과학 데이터를 분석하고 시각화하는 컴퓨터 프로그램
  • 무료 오픈 소스 교차 플랫폼 전자책 관리자(calibre)
  • 과학 데이터를 시각화하는 무료 오픈 소스 교차 플랫폼 프로그램인 Veusz

참조

  1. ^ "Introduction — SIP". riverbankcomputing.com. Retrieved 2010-08-14.
  2. ^ "Phil Thompson Talks About PyQt". dot.kde.org. 2006. Retrieved 2010-08-13.