Похоже, вы неправильно установили заголовочные файлы и статические библиотеки для python dev. Используйте менеджер пакетов, чтобы установить их для всей системы.
Для apt
( Ubuntu, Debian ... ):
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
Для yum
( CentOS, RHEL ... ):
sudo yum install python-devel # for python2.x installs
sudo yum install python3-devel # for python3.x installs
Для dnf
( Fedora ... ):
sudo dnf install python2-devel # for python2.x installs
sudo dnf install python3-devel # for python3.x installs
Для zypper
( openSUSE ... ):
sudo zypper in python-devel # for python2.x installs
sudo zypper in python3-devel # for python3.x installs
Для apk
( Альпийский ... ):
# This is a departure from the normal Alpine naming
# scheme, which uses py2- and py3- prefixes
sudo apk add python2-dev # for python2.x installs
sudo apk add python3-dev # for python3.x installs
Для apt-cyg
( Cygwin ... ):
apt-cyg install python-devel # for python2.x installs
apt-cyg install python3-devel # for python3.x installs
locate Python.h
и убедитесь, что у вас уже есть файл, прежде чем делать все это. Если вы можете найти расположенный файл, в основном этот ответ будет работать: stackoverflow.com/a/19344978/4954434 (это может быть просто проблема с путями)sudo yum install python27-devel
apt-get install python3.6-dev
работал для меня.sudo apt-get install python3.6-dev
sudo apt-get install python3.7-dev
.В Ubuntu у меня был запущен Python 3, и мне пришлось установить
Если вы хотите использовать версию Python, которая не связана с python3, установите соответствующий пакет python3.x-dev. Например:
источник
sudo apt-get install python3.4-dev
для моего Python3.4, и это решило мою проблему.sudo apt-get install python2.7-dev
исправлена проблемаpython3-dev
будут установлены зависимости для той версии, которая связана сpython3
командой. Поэтому, если вы хотите установить конкретную версию, используйте полную версию, например -python3.x-dev
.sudo apt-get install python3.6-dev
Для Python 3.7 и Ubuntu в частности мне нужно было
sudo apt install libpython3.7-dev
, Я думаю, что в какой-то момент имена были изменены с
pythonm.n-dev
этого.для Python 3.6, аналогично:
sudo apt install libpython3.6-dev
источник
sudo apt install libpython3.6-dev
Две вещи, которые вы должны сделать.
Установите пакет разработки для Python, в случае Debian / Ubuntu / Mint это делается командой:
Во-вторых, файлы включения по умолчанию не включены в путь включения, и библиотека Python не связана с исполняемым файлом по умолчанию. Вам нужно добавить эти флаги (соответственно заменить версию Python):
Другими словами, ваша команда компиляции должна быть:
источник
pkg-config
вместо raw-I
: stackoverflow.com/a/21531170/895245Если вы используете Raspberry Pi:
источник
на Fedora запустите это для Python 2:
и для Python 3:
источник
apt-get install python-dev
.Если вы используете tox для запуска тестов на нескольких версиях Python, вам может понадобиться установить библиотеки Python для каждой версии Python, на которой вы тестируете.
источник
Решение для Cygwin
Вам необходимо установить пакет
python2-devel
илиpython3-devel
, в зависимости от используемой версии Python.Вы можете быстро установить его, используя 32-разрядную или 64-разрядную версию
setup.exe
(в зависимости от вашей установки) с сайта Cygwin.com. .Пример (измените
setup.exe
имя файла и основную версию Python, если вам нужно):Вы также можете проверить мой другой ответ, чтобы узнать еще несколько вариантов установки пакетов Cygwin из командной строки.
источник
В AWS API (centOS) его
источник
pip install cryptography
использования Amazon на Linux.Для меня изменение этого сработало:
Я нашел файл
/usr/include/python2.7/Python.h
, и поскольку/usr/include
он уже находится в пути включения, то егоpython2.7/Python.h
должно быть достаточно.Вы также можете добавить путь включения из командной строки -
gcc -I/usr/lib/python2.7
(спасибо @ erm3nda).источник
gcc -I/usr/lib/python2.7 etc
, чем жестко кодировать вызовы include.Убедитесь, что файлы разработчика Python поставляются с вашей ОС.
Вы не должны жестко кодировать библиотеку и включать пути. Вместо этого используйте pkg-config, который выведет правильные параметры для вашей конкретной системы:
Вы можете добавить его в свою строку gcc :
источник
Установка AWS EC2 под управлением python34:
sudo yum install python34-devel
источник
В моем случае исправление в Ubuntu заключалось в установке пакетов
libpython-all-dev
(илиlibpython3-all-dev
если вы используете Python 3).источник
python-all-dev
в моем случае, но достаточно близко.Если вы используете virtualenv с 3.6 python (прямо сейчас), обязательно установите соответствующий python 3.6 dev
sudo apt-get install python3.6-dev
, в противном случаеsudo python3-dev
при установке будет установлен python dev 3.3.3-1, что не решит проблему.источник
Это не та ситуация, но она также работает для меня, и теперь я могу использовать SWIG с Python3.5 :
Я пытался скомпилировать:
С Python 2.7 работает нормально, не с моей версией 3.5:
После запуска в моей установке Ubuntu 16.04:
Теперь я могу без проблем скомпилировать Python3.5:
источник
Я также столкнулся с этой ошибкой, когда я устанавливал coolprop в Ubuntu.
Для Ubuntu 16.04 с Python 3.6
Если это не помогло, попробуйте установить / обновить
gcc
lib.источник
python3-dev
много раз бегал и получал одну и ту же ошибку, но не знал об этомpython3.6-dev
!! Спасибо!!попробуй apt-файл. Трудно запомнить имя пакета, в котором находится отсутствующий файл. Он универсален и полезен для любых файлов пакетов.
Например:
Теперь вы можете сделать экспертное предположение о том, какой из них выбрать.
источник
Мне удалось решить эту проблему и создать файл .so в одной команде
источник
Для товарищей по OpenSuse:
источник
Для CentOS 7:
Я следовал инструкциям по установке 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 не сработали):
источник
Эта ошибка произошла, когда я попытался установить ctds на CentOS 7 с Python3.6. Я сделал все трюки, упомянутые здесь, в том числе
yum install python34-devel
. ПроблемаPython.h
была найдена в/usr/include/python3.4m but not in /usr/include/python3.6m
. Я попытался использовать,--global-option
чтобы указать включить dir (pip3.6 install --global-option=build_ext --global-option="--include-dirs=/usr/include/python3.4m" ctds
). Это привело кlpython3.6m
не найден при связывании ctds.Наконец, работало исправление среды разработки для Python3.6, которое необходимо исправить с помощью include и libs.
Python.h должен быть в вашем пути включения для gcc. Какая бы версия Python ни использовалась, например, если она 3.6, то
/usr/include/python3.6m/Python.h
обычно она должна быть .источник
Конечно,
python-dev
илиlibpython-all-dev
первым делом (apt
)install
, но если это не поможет, как в моем случае, я советую вам установить сторонние пакеты Function Interface с помощьюsudo apt-get install libffi-dev
иsudo pip install cffi
.Это должно помочь, особенно если вы видите ошибку как / из
c/_cffi_backend.c:2:20: fatal error: Python.h: No such file or directory
.источник
Это часто появляется, когда вы пытаетесь удалить
python3.5
и установитьpython3.6
.Поэтому при использовании
python3
(whichpython3 -V
=>python3.6
) для установки некоторых пакетов требуетсяpython3.5
заголовок, появится эта ошибка.Решить, установив
python3.6-dev
модуль.источник
Вы должны установить файлы разработки Python в вашей операционной системе, если Python, поставляемый с вашей операционной системой, не поставляется с ними. Многочисленные ответы на этот вопрос показывают множество способов достижения этой цели в разных системах.
Когда вы это сделаете, проблема заключается в том, чтобы сообщить компилятору, где они находятся и как скомпилировать их. Python поставляется с программой под названием
python-config
. Для компиляции вам нужны--includes
выходные данные, а для связи программы с библиотекой Python (встраивание Python в вашу программу) ---ldflags
выходные данные. Пример:python-config
Программа может быть названа в честь версии Python - на Debian, Ubuntu, например , это может быть названоpython3-config
илиpython3.6-config
.источник
Иногда даже после установки python-dev ошибка сохраняется. Проверьте на наличие ошибки, если отсутствует «gcc».
Сначала загрузите, как указано в https://stackoverflow.com/a/21530768/8687063 , затем установите gcc
Для apt (Ubuntu, Debian ...):
Для ням (CentOS, RHEL ...):
Для dnf (Fedora ...):
Для zypper (openSUSE ...):
Для apk (Alpine ...):
источник
Это означает, что
Python.h
пути по умолчанию для вашего компилятора не включены. Вы установили его для всей системы или локально? Какая у тебя ОС?Вы можете использовать
-I<path>
флаг, чтобы указать дополнительный каталог, где ваш компилятор должен искать заголовки. Вероятно, вам придется продолжить работу,-L<path>
чтобы gcc мог найти библиотеку, с которой вы будете ссылаться-l<name>
.источник