Python용 C 확장을 컴파일하는 방법

Python용 C 확장을 컴파일하는 방법

https://github.com/lthiery/SPI-Py다음을 실행하여 (Raspbian을 실행하는 Raspberry Pi에) 설치하려고 합니다 .sudo python setup.py install

오류로 인해 실패합니다.

spi.c:20:20: fatal error: Python.h: No such file or directory
 #include <Python.h>

아마도 일부 라이브러리를 설치해야 할 것 같지만 SPI-Py에 대한 "문서"가 거의 존재하지 않습니다.

다른 프로그램을 실행하는 데에는 문제가 없습니다 c.

하나 있다/usr/lib/pypy-upstream/include/Python.h

답변1

C 컴파일러(아마도 gcc)가 Python.h를 찾을 수 없는 것 같습니다. SPI-Py의 소스를 편집하여 PyPy 버전을 가리키거나 적절한 python-dev 패키지를 설치하여 SPI-Py 설치를 수행할 수 있습니다.

python-dev 설치

이것은 최소한의 침입 방법이지만 PyPy가 이미 시스템에 설치되어 있기 때문에 "투박한" 방법으로 간주될 수 있습니다. Python 2를 사용하는 경우 개발 패키지를 다운로드하세요.

sudo apt-get install python-dev

또는 Python 3 개발 패키지를 설치합니다.

sudo apt-get install python3-dev

적절한 개발 패키지가 있으면 SPI-Py를 다시 설치해 보세요. 성공하면 필요한 경우 Python 개발 패키지를 안전하게 제거할 수 있습니다. Python 2 개발 패키지를 제거하려면 다음 안내를 따르세요.

sudo apt-get purge python-dev

또는 Python 3 개발 패키지를 제거합니다.

sudo apt-get purge python3-dev

두 명령 중 하나를 실행한 후 다음을 사용하여 종속성을 제거할 수 있습니다.

sudo apt-get autoremove

SPI-Py 수정

이 솔루션은 테스트하지 않았습니다. SPI-Py가 PyPy의 "Python.h"를 사용하도록 강제하려면 spi.c 파일을 편집해야 할 수도 있습니다. 다음 줄을 변경하십시오.

module1 = Extension('spi', sources = ['spi.c'])

도착하다:

module1 = Extension('spi',
                    include_dirs = ['/usr/lib/pypy-upstream/include/'],
                    sources = ['spi.c'])

그런 다음 SPI-Py를 다시 설치해 보세요.

답변2

이 패키지를 설치해야 합니다 python-dev.

관련 정보