Distutils не может найти Python.h - PullRequest
       15

Distutils не может найти Python.h

5 голосов
/ 24 февраля 2011

У меня есть скрипт установки distutils с разделом расширения, который выглядит примерно так:

from distutils.core import setup, Extension

my_module = Extension('my_module',
                sources = ['my_file.c', 'my_other_file.c'])

setup (name = 'my_module',
       version = '1.0',
       description = 'My module',
       ext_modules = [my_module])

Запуск setup.py build отлично работает на моем Mac. Когда я перехожу на компьютер Debian, происходит сбой:

error: Python/Python.h: No such file or directory

У меня установлены python2.6 и python2.6-dev, и файл присутствует в /usr/include/Python2.6.

Команда, которую она выполняет для файла проблемы:

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c my_module.c -o -build/XYZ/my_module.o

Так что это происходит в месте расположения файла заголовка.

Единственное очевидное различие между средой Mac против Linux - это gcc-4.2 против gcc-4.4 и Python 2.7 против Python 2.6

Идеи

EDIT:

В рассматриваемом файле C:

#include <Python/Python.h>
#include <Python/structmember.h>

Ответы [ 2 ]

5 голосов
/ 24 февраля 2011

Может быть в вашем модуле, вам нужно include "Python.h" вместо "Python/Python.h"?

или вы можете попробовать экспортировать include path и попробовать снова скомпилировать с помощью gcc или g ++?

export C_INCLUDE_PATH=/usr/include/python2.6:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/include/python2.6:$CPLUS_INCLUDE_PATH
1 голос
/ 19 мая 2017

В моем случае я пропустил python3-dev, sudo apt-get install python3-dev исправил его.

...