fatal error python h нет такого файла или каталога
Решение проблемы с ошибкой «fatal error: Python.h: Нет такого файла или каталога»
Если при компиляции программы вы получаете ошибку, что отсутствует файл Python.h, то необходимо установить дополнительный пакет.
Вам нужно обратить внимание, какая версия Python используется для компиляции программы: 2.x или 3.x. Файлы заголовков помещены в различные пакеты для этих версий, поэтому вам нужно установить правильный пакет, в соответствии с используемой при компиляции версией Python. В большинстве популярных дистрибутивов требуемый пакет имеется в стандартном репозитории, поэтому установка выполняется в одну команду.
Текст ошибки может чуть различаться, в зависимости от того, в каком файле она возникла. Примеры сообщений:
Самой вероятной причиной этого является то, что не установлены файлы заголовка и статичных библиотек для python dev. Для установки их на системном уровне используйте менеджер пакетов для вашего дистрибутива.
Для apt (Ubuntu, Debian, Kali Linux, Linux Mint…):
Если программа компилируется для python2.x, то выполните команду:
Если программа компилируется для python3.x, то выполните команду:
Для yum (CentOS, RHEL…):
Если вам нужно установить для других версий Python, то замените цифры на нужные, например:
Для dnf (Fedora…):
Для zypper (openSUSE…):
Если после установки заголовков проблема не исчезла, то возможно, что вы выбрали неверную версию Python.
фатальная ошибка: Python.h: нет такого файла или каталога
Я пытаюсь создать разделяемую библиотеку, используя файл расширения C, но сначала мне нужно сгенерировать выходной файл, используя следующую команду:
После выполнения команды я получаю это сообщение об ошибке:
utilsmodule.c: 1: 20: фатальная ошибка: Python.h: компиляция такого файла или каталога не прекращена.
25 ответов
Это означает, что Python.h отсутствует в путях включения вашего компилятора по умолчанию. Вы установили его для всей системы или локально? Какая у тебя ОС?
В AWS API (centOS) его
Две вещи, которые вы должны сделать.
Установите пакет разработки для Python, в случае Debian / Ubuntu / Mint это делается командой:
Во-вторых, файлы включения по умолчанию не включены в путь включения, и библиотека Python не связана с исполняемым файлом по умолчанию. Вам необходимо добавить эти флаги (соответственно замените версию Python):
Другими словами, ваша команда компиляции должна быть:
Похоже, вы неправильно установили заголовочные файлы и статические библиотеки для python dev. Используйте менеджер пакетов, чтобы установить их для всей системы.
Иногда даже после установки python-dev ошибка сохраняется. Проверьте на наличие ошибки, если отсутствует «gcc».
Сначала загрузите, как указано в https://stackoverflow.com/a/21530768/8687063, затем установите gcc
Наконец, работало исправление среды разработки для Python3.6, которое необходимо исправить с помощью include и libs.
фатальная ошибка: Python.h: нет такого файла или каталога
Я пытаюсь создать общую библиотеку, используя файл расширения C, но сначала мне нужно сгенерировать выходной файл с помощью команды ниже:
После выполнения команды я получаю это сообщение об ошибке:
utilsmodule.c: 1: 20: фатальная ошибка: Python.h: компиляция такого файла или каталога не прекращена.
Похоже, вы неправильно установили заголовочные файлы и статические библиотеки для python dev. Используйте менеджер пакетов, чтобы установить их для всей системы.
В Ubuntu у меня был запущен Python 3, и мне пришлось установить
Если вы хотите использовать версию Python, которая не связана с python3, установите соответствующий пакет python3.x-dev. Например:
Для Python 3.7 и Ubuntu в частности мне нужно было
sudo apt install libpython3.7-dev
, Я думаю, что в какой-то момент имена были изменены с pythonm.n-dev этого.
для Python 3.6, аналогично:
sudo apt install libpython3.6-dev
Две вещи, которые вы должны сделать.
Установите пакет разработки для Python, в случае Debian / Ubuntu / Mint это делается командой:
Во-вторых, файлы включения по умолчанию не включены в путь включения, и библиотека Python не связана с исполняемым файлом по умолчанию. Вам нужно добавить эти флаги (соответственно заменить версию Python):
Другими словами, ваша команда компиляции должна быть:
Если вы используете Raspberry Pi:
на Fedora запустите это для Python 2:
Если вы используете tox для запуска тестов на нескольких версиях Python, вам может понадобиться установить библиотеки Python для каждой версии Python, на которой вы тестируете.
Решение для Cygwin
Пример (измените setup.exe имя файла и основную версию Python, если вам нужно):
Вы также можете проверить мой другой ответ, чтобы узнать еще несколько вариантов установки пакетов Cygwin из командной строки.
В AWS API (centOS) его
Для меня изменение этого сработало:
Убедитесь, что файлы разработчика Python поставляются с вашей ОС.
Вы не должны жестко кодировать библиотеку и включать пути. Вместо этого используйте pkg-config, который выведет правильные параметры для вашей конкретной системы:
Вы можете добавить его в свою строку gcc :
Установка AWS EC2 под управлением python34:
sudo yum install python34-devel
В моем случае исправление в Ubuntu заключалось в установке пакетов libpython-all-dev (или libpython3-all-dev если вы используете Python 3).
Это не та ситуация, но она также работает для меня, и теперь я могу использовать SWIG с Python3.5 :
Я пытался скомпилировать:
С Python 2.7 работает нормально, не с моей версией 3.5:
existe_wrap.c: 147: 21: фатальная ошибка: Python.h: сборка existe el archivo o el Directorio не прекращена.
После запуска в моей установке Ubuntu 16.04:
Теперь я могу без проблем скомпилировать Python3.5:
Я также столкнулся с этой ошибкой, когда я устанавливал coolprop в Ubuntu.
Для Ubuntu 16.04 с Python 3.6
Если это не помогло, попробуйте установить / обновить gcc lib.
попробуй apt-файл. Трудно запомнить имя пакета, в котором находится отсутствующий файл. Он универсален и полезен для любых файлов пакетов.
Теперь вы можете сделать экспертное предположение о том, какой из них выбрать.
Для товарищей по OpenSuse:
Я следовал инструкциям по установке python3.6 на нескольких виртуальных машинах: https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming- environment-on-centos-7, а затем смог собрать mod_wsgi и заставить его работать с python3.6 virtualenv
Если вы используете Python 3.6 в Amazon Linux (на основе RHEL, но приведенные здесь ответы RHEL не сработали):
Наконец, работало исправление среды разработки для Python3.6, которое необходимо исправить с помощью include и libs.
Решить, установив python3.6-dev модуль.
Вы должны установить файлы разработки Python в вашей операционной системе, если Python, поставляемый с вашей операционной системой, не поставляется с ними. Многочисленные ответы на этот вопрос показывают множество способов достижения этой цели в разных системах.
Иногда даже после установки python-dev ошибка сохраняется. Проверьте на наличие ошибки, если отсутствует «gcc».
Это означает, что Python.h пути по умолчанию для вашего компилятора не включены. Вы установили его для всей системы или локально? Какая у тебя ОС?
Python.h: Нет такого файла или каталога
Недавно я установил KDevelop 4 для разработки на С++ на моем Macbook Pro, работающем под Ubuntu 12.04 LTS.
Я хочу встроить приложение Python в свой код на С++. Для этого нужно включить заголовочный файл Python.h. Итак, я сделал это.
Однако при запуске я получил следующий ответ от IDE:
Однако я нашел проблему достаточно скоро. Я не загрузил пакет python-dev. Итак, я сделал это. Я снова побежал, но та же ошибка была снова. Итак, я думал, что проблема должна быть связана с тем, что заголовочный файл не включен KDevelop. Таким образом, я добавил соответствующую папку в путь include, и KDevelop сразу же узнал, что, удалив красную подчеркивание под вторым оператором include в приведенном выше коде.
EDIT: некоторые подробности, о которых я пропустил ранее упоминание, это то, что KDevelop использует cmake для моего проекта. Я думаю, причина, по которой возникает моя проблема, заключается в том, что cmake не знает соответствующие пути компилятора и компоновщика. Я был бы признателен за любую помощь в настройке правильных путей для cmake.
ОТВЕТЫ
Ответ 1
В вашем CMakeLists.txt попробуйте добавить следующее:
Подробнее о командах:
Ответ 2
работал у меня в проблеме «Python.h: Нет такого файла или каталога»
Ответ 3
Вы хотите включить следующее в строку компиляции:
и это на линии ссылок:
Ответ 4
Скорее всего, Python.h не входит в ваш путь к системам сборки. Вы можете узнать, где находится ваш Python.h, запустив
Это также проверит, что на пакете python-dev действительно установлен Python.h.
У меня здесь нет kdevelop, но большинство IDE имеют параметр где-то, где вы можете указать путь include, используемый системой сборки, и вы должны иметь возможность добавить путь, где находится Python.h.
Ответ 5
Я предполагаю, что он уже установлен. Найдите путь с помощью:
и когда вы это сделаете, при компиляции добавьте
Ответ 6
Для Linux Ubuntu Putty пользователи попробуют это:
Неустранимая ошибка: Python.h: Нет такого файла или каталога
Я пытаюсь создать общую библиотеку с использованием файла расширения C, но сначала мне нужно сгенерировать выходной файл, используя следующую команду:
После выполнения команды я получаю это сообщение об ошибке:
utilsmodule.c: 1: 20: фатальная ошибка: Python.h: нет такого файла или каталога компиляция завершена.
ОТВЕТЫ
Ответ 1
Ответ 2
Похоже, вы неправильно установили заголовочные файлы и статические библиотеки для python dev. Используйте менеджер пакетов, чтобы установить их для всей системы.
Для apt (Ubuntu, Debian. ):
Для yum (CentOS, RHEL. ):
Для dnf (Fedora. ):
Для zypper (openSUSE. ):
Для apk (Альпийский. ):
Для apt-cyg (Cygwin. ):
Ответ 3
На Ubuntu я работал под управлением Python 3, и мне пришлось установить
Если вы хотите использовать версию Python, которая не связана с python3, установите соответствующий пакет python3.x-dev. Например:
Ответ 4
Две вещи, которые вам нужно сделать.
Установите пакет разработки для Python, в случае Debian/Ubuntu/Mint он выполнит команду:
Во-вторых, файлы include не по умолчанию включены в путь include, а также не являются библиотекой Python, связанными с исполняемым файлом по умолчанию. Вам нужно добавить эти флаги (соответственно заменить версию Python):
Другими словами, ваша команда компиляции должна быть:
Ответ 5
Если вы используете малину Pi:
Ответ 6
в Fedora запустите это для Python 2:
Ответ 7
Если вы используете tox для запуска тестов на нескольких версиях Python, вам может потребоваться установить библиотеки разработчиков Python для каждой версии Python, которую вы тестируете на.
Ответ 8
Решение для Cygwin
Вы можете быстро установить его, используя 32-битный или 64-битный setup.exe (в зависимости от вашей установки) с сайта Cygwin.com.
Пример (при необходимости измените имя файла setup.exe и основную версию Python):
Вы также можете проверить мой другой ответ, чтобы узнать еще несколько вариантов установки пакетов Cygwin из командной строки.
Ответ 9
В AWS API (centOS) его
Ответ 10
Для меня это изменилось:
Ответ 11
Убедитесь, что файлы разработчика Python поставляются с вашей ОС.
Вы не должны жестко кодировать библиотеку и включать пути. Вместо этого используйте pkg-config, который выведет правильные параметры для вашей конкретной системы:
Вы можете добавить его в свою строку gcc:
Ответ 12
AWS EC2 устанавливает запуск python34:
sudo yum install python34-devel
Ответ 13
Ответ 14
Это не та ситуация, но она также работает для меня, и теперь я могу использовать SWIG с Python3.5:
Я пытался скомпилировать:
С Python 2.7 отлично работает, не с моей версией 3.5:
existe_wrap.c: 147: 21: фатальная ошибка: Python.h: сборка existe el archivo o el Directorio не прекращена.
После запуска в моей установке Ubuntu 16.04:
Теперь я могу без проблем скомпилировать Python3.5:
Ответ 15
Ответ 16
Я также столкнулся с этой ошибкой, когда я устанавливал coolprop в Ubuntu.
Для Ubuntu 16.04 с Python 3.6
Если это не помогло, попробуйте установить/обновить gcc lib.
Ответ 17
попробуйте apt файл. Трудно запомнить имя пакета, в котором находится отсутствующий файл. Он является общим и полезным для любых файлов пакетов.
Теперь вы можете сделать экспертную догадку о том, какой из них выбрать.
Ответ 18
Для Python 3.7 и Ubuntu в частности мне понадобилось
sudo apt install libpython3.7-dev
, Я думаю, что в какой-то момент имена были изменены с pythonm.n-dev на это.
Ответ 19
Для товарищей OpenSuse:
Ответ 20
Я следовал приведенным здесь инструкциям для установки python3.6 на нескольких виртуальных машинах: https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming- environment-on-centos-7, а затем смог собрать mod_wsgi и заставить его работать с python3.6 virtualenv
Ответ 21
Ответ 22
Наконец, работа над исправлением среды разработки для Python3.6 должна быть исправлена с помощью include и libs.
Python.h должен быть включен в ваш путь include для gcc. Какая бы версия python не использовалась, например, если она 3.6, то она должна быть в /usr/include/python3.6m/Python.h обычно.
Ответ 23
Если вы используете Python 3.6 в Amazon Linux (на основе RHEL, но приведенные здесь ответы RHEL не сработали):
Ответ 24
Ответ 25
Иногда даже после установки python-dev ошибка сохраняется. Проверьте на наличие ошибки, если отсутствует «gcc».
Для apt (Ubuntu, Debian. ):
Для ням (CentOS, RHEL. ):
Для dnf (Fedora. ):
Для zypper (openSUSE. ):
Для apk (Alpine. ):
Ответ 26
Это означает, что Python.h отсутствует в ваших путях по умолчанию для компилятора. Установили ли вы его как в системе, так и локально? Что ваша ОС?
Ответ 27
Вы должны установить файлы разработки Python в вашей операционной системе, если Python, поставляемый с вашей операционной системой, не поставляется с ними. Многочисленные ответы на этот вопрос показывают множество способов достижения этой цели в разных системах.