2012-08-15 2 views
2

필자가 쓰고있는 새로운 C 라이브러리를 포장하기 위해 파이썬 패키지를 작성하고 싶다. 솔직히 말해서 약간의 학습을해야한다. 라이브러리 spam (물론)을 호출하고 싶습니다. C 라이브러리는 이와 같이 구성되어 있습니다. 동일한 네임 스페이스에서 C와 Python을 함께 사용할 수 있습니까?

Spam/ 
    lib/ 
     foo.c 
     Makefile 
     libspam.a /* Generated by Makefile */ 
     libspam.so /* Generated by Makefile */ 

내가 파이썬 패키지를 제공하고자,의는 foo.c를 동시에 .At 하나의 공공 기능 foo(char * bar)을 제공한다고 가정 해 봅시다. 래퍼를 foo에, 또 다른 함수, 예를 들어 safe_foo에 같은 이름 공간으로 제공하고 싶습니다. safe_foo은 에서 몇 가지 검사를 수행 한 다음 foo을 호출하는 기능인 Python 인 입니다. 그들은 이렇게 부를 수 있습니다.

import spam 

file='hello.txt' 
foo(file) 
safe_foo(file) 

그것은 가능합니까?

비슷한 상황은 Python 패키지를 개발 한 다음 API를 위반하지 않고 하나의 함수를 C 함수로 다시 구현하려는 것입니다.

당신은 내가 어떤 파이썬 포장의 새로운이야 볼 수 있습니다 ...

답변

2

이 일의 일반적인 방법은 파이썬이 다음 밑줄 (예 : _foo.so)와 C 모듈을 앞에하는 것입니다 일반적으로 이름이 지정된 모듈 (예 : foo.py). foo_foo의 가져 오기를 수행하고 C 모듈의 함수를 호출하는 스텁을 포함합니다.

관련 문제