Неудачное строительное колесо для psutil

Я пытаюсь установить psutil в centos, и то же самое происходит с ошибкой gcc. Я ссылался на различные сообщения на этом форуме, но ни один из них не помог. Многие темы предлагали использовать pydev, но он уже есть в моей системе.

#sudo /opt/airwave/bin/pip install psutil
   gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/opt/airwave/include/python2.7 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_common.o
    psutil/_psutil_common.c:9:20: error: Python.h: No such file or directory
    psutil/_psutil_common.c:25: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
    psutil/_psutil_common.c:31: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
    psutil/_psutil_common.c:42: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
    psutil/_psutil_common.c:57: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
    psutil/_psutil_common.c:73: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
    psutil/_psutil_common.c: In function 'psutil_debug':
    psutil/_psutil_common.c:87: warning: implicit declaration of function 'va_start'
    psutil/_psutil_common.c:91: warning: implicit declaration of function 'va_end'
    psutil/_psutil_common.c: In function 'psutil_setup':
    psutil/_psutil_common.c:100: warning: implicit declaration of function 'getenv'
    psutil/_psutil_common.c:100: warning: comparison between pointer and integer
    psutil/_psutil_common.c:102: warning: comparison between pointer and integer
    error: command 'gcc' failed with exit status 1

gcc доступен

[root@localhost /]# yum install gcc
Loaded plugins: downloadonly, fastestmirror, presto, security, verify, versionlock
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
Package gcc-4.4.7-18.el6.x86_64 already installed and latest version
Nothing to do
[root@localhost /]#

python-devel тоже на месте

Loaded plugins: downloadonly, fastestmirror, presto, security, verify, versionlock
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
Package python-devel-2.6.6-66.el6_8.x86_64 already installed and latest version
Nothing to do

Версия Python 2.7.4.

[root@localhost /]# python
Python 2.7.4 (default, Apr 17 2013, 09:54:46)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Файл Python.h доступен

[root@localhost /]# find / -name Python.h
/usr/include/python2.6/Python.h
[root@localhost /]#

Доступны два экземпляра Python (версия по умолчанию 2.6 и установленная пользователем версия 2.7).

[root@localhost jvm]# /usr/bin/python
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

[root@localhost jvm]# /opt/airwave/bin/python
Python 2.7.4 (default, Apr 17 2013, 09:54:46)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Поэтому, когда я пробую yum install python-devel , он устанавливает пакет python dev для python2.6, но я хочу, чтобы yum установил python-devel для python 2.7. Проверьте и дайте мне знать, если вам нужна какая-либо информация.


person Sandeep Lade    schedule 08.01.2018    source источник
comment
Вы путаете вещи. Например: Python, который вы запускаете, — это 2.7, но пакет разработки предназначен для 2.6. Также /usr/include/python2.6/Python.h неизвестен компилятору (gcc); он ищет его в /opt/airwave/include/python2.7, где (очевидно) не может его найти.   -  person CristiFati    schedule 08.01.2018
comment
@CristiFati: Да, мой gcc не может найти файл Python.h, как его включить? пробовал gcc -I/usr/include/python2.6 /usr/include/python2.6/Python.h не помогло   -  person Sandeep Lade    schedule 08.01.2018
comment
@CristiFati: yum install python-devel установлен 2.6. Есть ли способ установить для 2.7?   -  person Sandeep Lade    schedule 08.01.2018
comment
У меня нет доступа к машине RH, но вам следует установить пакет python-devel для версии Python, которую вы пытаетесь собрать против (в данном случае 2.7.*). Больше не знаком с именами rpm (попробуйте python-devel-2.7? но я думаю, что 2.6 используется по умолчанию для вашей версии OS). Вот список RPM, которые вы можете загрузить и установить вручную: rpmfind.net/linux/rpm2html/search.php?query=python-devel. Также вам может понадобиться установить некоторые переменные env перед pip install.   -  person CristiFati    schedule 08.01.2018
comment
Сбой с какой-то конфликтной ошибкой Error: python-devel conflicts with python-2.6.6-66.el6_8.x86_64 Error: Package: python-devel-2.7.5-58.el7.x86_64 (/python-devel-2.7.5-58.el7.x86_64) Requires: libpython2.7.so.1.0()(64bit) Error: Package: python-devel-2.7.5-58.el7.x86_64 (/python-devel-2.7.5-58.el7.x86_64) Requires: /usr/bin/python2.7 You could try using --skip-broken to work around the problem . Я создал программную ссылку ln -sf /opt/airwave/bin/python2.7 /usr/bin/python2.7, даже если она не удалась   -  person Sandeep Lade    schedule 08.01.2018
comment
Следует избегать попыток исправления вручную, если вы не знаете, что делаете. Попробуйте удалить пакет 2.6 (python-devel, а также python, если он есть). Вам также понадобится RPM python27. Кроме этого, я не знаю, что вам сказать без доступа к консоли.   -  person CristiFati    schedule 08.01.2018
comment
@CristiFati: Не удалось удалить python2.6. У меня установлен python2.7, но yum install загружает python-devel для 2.7. Когда я пытаюсь загрузить и установить python-devel2.7, он не может найти python2.7 в /usr/bin, хотя существует программная ссылка. Любое другое предложение?   -  person Sandeep Lade    schedule 09.01.2018


Ответы (1)


Я хотел решение для python 3.6, и приведенное ниже решение сработало для меня.

sudo apt-get установить python3.6-dev

person Ojus sangoi    schedule 14.07.2020
comment
Идеальный! У меня была аналогичная проблема: psutil не обновлялся с версии 5.7.0 до 5.7.1 под python3.5. Точно так же, как предложил @Ojus, я только что установил libpython3.5-dev (даже не нужно полностью устанавливать python3.5-dev), и проблема была решена. - person loved.by.Jesus; 16.07.2020