19

Фатальная ошибка: Python.h: Файл или каталог не найден

13

Я пытаюсь создать общую библиотеку, используя файл расширения C, но сначала мне нужно сгенерировать выходной файл с помощью следующей команды:

gcc -Wall utilsmodule.c -o Utilc

После выполнения команды я получаю следующую ошибку:

utilsmodule.c:1:20: fatal error: Python.h: No such file or directory
compilation terminated.

Я пробовал все предлагаемые решения в интернете, но проблема по-прежнему существует. У меня нет проблем с файлом Python.h, я смог его найти на своем компьютере.

5 ответ(ов)

35

Похоже, вы не установили необходимые заголовочные файлы и статические библиотеки для разработки с Python. Вам следует использовать ваш пакетный менеджер для установки их в системе.

Для apt (Ubuntu, Debian...):

sudo apt-get install python-dev   # для Python 2.x
sudo apt-get install python3-dev  # для Python 3.x

Для yum (CentOS, RHEL...):

sudo yum install python-devel    # для Python 2.x
sudo yum install python3-devel   # для Python 3.x

Для dnf (Fedora...):

sudo dnf install python2-devel  # для Python 2.x
sudo dnf install python3-devel  # для Python 3.x

Для zypper (openSUSE...):

sudo zypper in python-devel   # для Python 2.x
sudo zypper in python3-devel  # для Python 3.x

Для apk (Alpine...):

# Это отличается от обычной схемы именования Alpine,
# которая использует префиксы py2- и py3-
sudo apk add python2-dev  # для Python 2.x
sudo apk add python3-dev  # для Python 3.x

Для apt-cyg (Cygwin...):

apt-cyg install python-devel   # для Python 2.x
apt-cyg install python3-devel  # для Python 3.x

Важно: python3-dev/devel не охватывает все минорные версии Python 3 автоматически.

Например, если вы используете Python 3.11, возможно, вам потребуется установить python3.11-dev / python3.11-devel.

5

На Ubuntu я использовал Python 3 и мне нужно было установить

sudo apt-get install python3-dev

Если вы хотите использовать версию Python, которая не связана с python3, установите соответствующий пакет python3.x-dev. Например:

sudo apt-get install python3.5-dev
4

Для Python 3.7 и Ubuntu в частности, мне понадобилось выполнить:

sudo apt install libpython3.7-dev

Я думаю, что в какой-то момент названия были изменены с pythonm.n-dev на это.

Для Python 3.6, 3.8, 3.9, 3.10 (и других версий) аналогично:

sudo apt install libpython3.6-dev

sudo apt install libpython3.8-dev

sudo apt install libpython3.9-dev

sudo apt install libpython3.10-dev

sudo apt install libpython3.11-dev

sudo apt install libpython3.12-dev

1

Чтобы решить вашу проблему, выполните два шага.

Первое: установите пакет для разработки Python. Если вы используете Debian, Ubuntu или Mint, выполните следующую команду в терминале:

sudo apt-get install python-dev

Второе: файлы заголовков по умолчанию не включены в путь поиска, и библиотека Python не связана с исполняемым файлом автоматически. Вам необходимо добавить следующие флаги (замените версию Python на нужную):

-I/usr/include/python2.7 -lpython2.7 

Иными словами, ваша команда компиляции должна выглядеть следующим образом:

gcc -Wall -I/usr/include/python2.7 -lpython2.7 utilsmodule.c -o Utilc 

Надеюсь, это поможет!

0

Чтобы установить разработческие пакеты для Python на Fedora, выполните следующие команды в терминале:

Для Python 2:

sudo dnf install python2-devel

Для Python 3:

sudo dnf install python3-devel

Эти команды установят необходимые заголовочные файлы и библиотеки для разработки с использованием соответствующих версий Python.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь