Неустранимая ошибка: в Python.h нет такого файла или каталога - но python-dev уже установлен - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь установить mod_wsgi в Ubuntu.При запуске команды "sudo make" , как описано на сайте mod_wsgi , я получаю сообщение об ошибке:

src/server/wsgi_python.h:24:10: fatal error: Python.h: No such file or directory

Секция устранения неполадок mod_wsgi и другие сообщения в SO ( 1 , 2 , 3 ) говорят об установке Python-dev правильной версии.Это уже сделано на основе приведенного ниже вывода.Python3 работает под управлением 3.6.7 и apt-get, говоря, что python3-dev использует новейшую версию 3.6.7.

$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 

$ sudo apt-get install python3-dev
...
python3-dev is already the newest version (3.6.7-1~18.04).
0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.

Так что, похоже, файл Python.h существует, но make не можетНайди это.Я посмотрел этот пост ( 4 ), но я не думаю, что он применим ко мне, поскольку я могу найти местонахождение Python.h.

$ locate Python.h
/usr/include/python3.6m/Python.h

Я не уверен, куда идти дальше с этим.Python3.6-dev установлен, и я могу найти Python.h, но make не может.Я использую venv, который Pycharm создал для меня автоматически, и у меня есть подозрение, что он связан с проблемой, но я не уверен, как справиться с этой догадкой.Я использую make на том же терминале, что и python3 и apt-get, поэтому они должны использовать одни и те же переменные окружения (насколько я понимаю).

Любые предложения от кого-либо о следующих шагах?

1 Ответ

0 голосов
/ 16 февраля 2019

Я запустил ./configure для mod_wsgi и увидел вывод checking for python... /usr/bin/python.Когда я запускаю locate Python.h, это дает мне /usr/include/python3.6m/Python.h.Похоже, что конфигурация обнаружила неправильную версию python.Затем я запустил ./configure --with-python=/usr/bin/python3.6m, как предложено в документации mod_wsgi .Теперь запуск make прошел успешно.

Позже я узнал, что это более сложный способ установки mod_wsgi.Я закончил тем, что просто следовал этому руководству tecadmin , в котором говорится, что нужно выполнить команду sudo apt-get install libapache2-mod-wsgi.Это то, что я сделал, и mod_wsgi теперь работает с apache.

...