У меня есть Python в моей системе Ubuntu, но gcc не может найти Python.h - PullRequest
49 голосов
/ 27 ноября 2011

Я на школьном компьютере, поэтому не могу ничего установить.

Я пытаюсь создать код на C, который можно запустить на Python. Кажется, что все статьи, которые я нахожу на нем, требуют, чтобы вы использовали

#include <Python.h>

Я делаю это, но когда я компилирую, он жалуется, что нет такого файла или каталога.

На компьютере установлен Python (по крайней мере, он имеет команду python в терминале, и мы можем запустить любой код Python, какой захотим).

Я набрал locate Python.h в терминале, но ничего не нашел.

У меня есть два вопроса:

  1. Могу ли я написать C-код, который я могу вызывать на Python без Python.h?

  2. Я что-то упустил, а на компьютере действительно Python.h?

Ответы [ 12 ]

0 голосов
/ 14 сентября 2017

Это происходит потому, что Python.h не находится в папке включения по умолчанию (которая /usr/include/).

Установка Python-dev может помочь:

$ sudo apt-get install python-dev 

Но в основном проблема будет сохраняться, потому что пакеты разработки создаются внутри отдельной папки внутри самой папки include (/usr/include/python2.7 или python3).

Таким образом, вы должны либо указать папку библиотеки, используя опцию -I в gcc, либо создавая программные ссылки на все внутри этих папок, только снаружи (я бы предпочел первый вариант).

Использование опции -I в gcc:

$ gcc -o hello -I /usr/include/python2.7 helloworld.c

Создание софт-ссылок:

$ sudo ln -sv /usr/include/python2.7/* /usr/include/
0 голосов
/ 29 июня 2017

Это означает, что вы не устанавливаете библиотеки для разработчика Python.

Если вы работаете в ОС Linux, вы можете решить эту проблему с помощью команд, приведенных ниже:

  • Ubuntu(Debian):

    sudo apt-get install python-dev (Py2) или sudo apt-get install python3-dev (Py3)

  • Rehat (CentOS):

    yum install python-devel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...