Я просто записал простой исполняемый файл C, чтобы проверить если Python.h
работает или нет
#include<Python.h>
#include<stdio.h>
int main()
{
printf("this is a python header file included programm\n");
return 0;
}
Очевидно, это не делает многого. Однако, когда я пытаюсь скомпилировать его с gcc
это дает мне ошибку:
foo.c:1:19: fatal error: Python.h: No such file or directory.
Затем я проверил, чтобы видеть, имеет ли пакет python-dev Python.h
установленный или не использование locate
.
$locate Python.h
/usr/include/python2.7/Python.h
Мне ясно, что я имею Python.h
заголовочный файл в моей системе. Как я получаю свою исполняемую работу?
Необходимо квалифицировать Ваш включать
#include <python2.7/Python.h>
Или сказать gcc, где найти Python.h с
gcc -I /usr/include/python2.7/ program.c
Необходимо предоставить GCC включать путь для Python.h
заголовок. Это может быть сделано с эти -I
флаг:
gcc -c -I/usr/include/python2.7 sourcefile.c
Однако существует лучший путь: используйте pkg-конфигурация :
pkg-config --cflags python
Это произведет флаги, которые должны быть переданы GCC для компиляции приложений, которые используют заголовки Python и библиотеки.
При соединении, используйте вывод этой команды для включения соответствующих библиотек:
pkg-config --libs python
Вы могли даже объединить оба шага с:
gcc `pkg-config --cflags --libs python` sourcefile.c