0

Tried to installed module using pip but getting below error? Can any one help.

My machine is OEL7

(my_env) [root@TestBed pyenv]# pip3 install psutil
Collecting psutil
  Using cached psutil-5.7.2.tar.gz (460 kB)
Using legacy 'setup.py install' for psutil, since package 'wheel' is not installed.
Installing collected packages: psutil
    Running setup.py install for psutil ... error
    ERROR: Command errored out with exit status 1:
     command: /pyenv/my_env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-kptxsdoz/psut                                                                                                           il/setup.py'"'"'; __file__='"'"'/tmp/pip-install-kptxsdoz/psutil/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__)                                                                                                           ;code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tm                                                                                                           p/pip-record-o82cl8pc/install-record.txt --single-version-externally-managed --compile --install-headers /pyenv/my_env/include/sit                                                                                                           e/python3.6/psutil
         cwd: /tmp/pip-install-kptxsdoz/psutil/
    Complete output (45 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/psutil
    copying psutil/_pswindows.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_psbsd.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_compat.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_common.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_psposix.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/__init__.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_psaix.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_pslinux.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_pssunos.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_psosx.py -> build/lib.linux-x86_64-3.6/psutil
    creating build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_aix.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_system.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_testutils.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_bsd.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_connections.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_memleaks.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_unicode.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_posix.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_windows.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_misc.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_sunos.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/__init__.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_osx.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_process.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_linux.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/__main__.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_contracts.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/runner.py -> build/lib.linux-x86_64-3.6/psutil/tests
    running build_ext
    building 'psutil._psutil_linux' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/psutil
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protec                                                                                                           tor-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSUTIL_POSIX=1                                                                                                            -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=572 -DPSUTIL_LINUX=1 -I/pyenv/my_env/include -I/usr/include/python3.6m -c psutil/_psutil_                                                                                                           common.c -o build/temp.linux-x86_64-3.6/psutil/_psutil_common.o
    psutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory
     #include <Python.h>
                        ^
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /pyenv/my_env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"                                                                                                           '"'/tmp/pip-install-kptxsdoz/psutil/setup.py'"'"'; __file__='"'"'/tmp/pip-install-kptxsdoz/psutil/setup.py'"'"';f=getattr(tokenize                                                                                                           , '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'                                                                                                           exec'"'"'))' install --record /tmp/pip-record-o82cl8pc/install-record.txt --single-version-externally-managed --compile --install-                                                                                                           headers /pyenv/my_env/include/site/python3.6/psutil Check the logs for full command output.

(my_env) [root@TestBed pyenv]# yum install gcc
Loaded plugins: langpacks, ulninfo
docker-ce-stable                                                                                           | 3.5 kB  00:00:00
ol7_UEKR5                                                                                                  | 2.5 kB  00:00:00
ol7_latest                                                                                                 | 2.7 kB  00:00:00
(1/2): ol7_UEKR5/x86_64/updateinfo                                                                         |  92 kB  00:00:00
(2/2): ol7_UEKR5/x86_64/primary_db                                                                         |  16 MB  00:00:06
Package gcc-4.8.5-39.0.5.el7.x86_64 already installed and latest version
Nothing to do

(my_env) [root@TestBed pyenv]# pip3 install psutil
Collecting psutil
  Using cached psutil-5.7.2.tar.gz (460 kB)
Using legacy 'setup.py install' for psutil, since package 'wheel' is not installed.
Installing collected packages: psutil
    Running setup.py install for psutil ... error
    ERROR: Command errored out with exit status 1:
     command: /pyenv/my_env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-n7g7gqf_/psut                                                                                                           il/setup.py'"'"'; __file__='"'"'/tmp/pip-install-n7g7gqf_/psutil/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__)                                                                                                           ;code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tm                                                                                                           p/pip-record-cxodn_6f/install-record.txt --single-version-externally-managed --compile --install-headers /pyenv/my_env/include/sit                                                                                                           e/python3.6/psutil
         cwd: /tmp/pip-install-n7g7gqf_/psutil/
    Complete output (45 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/psutil
    copying psutil/_pswindows.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_psbsd.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_compat.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_common.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_psposix.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/__init__.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_psaix.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_pslinux.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_pssunos.py -> build/lib.linux-x86_64-3.6/psutil
    copying psutil/_psosx.py -> build/lib.linux-x86_64-3.6/psutil
    creating build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_aix.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_system.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_testutils.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_bsd.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_connections.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_memleaks.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_unicode.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_posix.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_windows.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_misc.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_sunos.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/__init__.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_osx.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_process.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_linux.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/__main__.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/test_contracts.py -> build/lib.linux-x86_64-3.6/psutil/tests
    copying psutil/tests/runner.py -> build/lib.linux-x86_64-3.6/psutil/tests
    running build_ext
    building 'psutil._psutil_linux' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/psutil
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protec                                                                                                           tor-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSUTIL_POSIX=1                                                                                                            -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=572 -DPSUTIL_LINUX=1 -I/pyenv/my_env/include -I/usr/include/python3.6m -c psutil/_psutil_                                                                                                           common.c -o build/temp.linux-x86_64-3.6/psutil/_psutil_common.o
    psutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory
     #include <Python.h>
                        ^
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /pyenv/my_env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"                                                                                                           '"'/tmp/pip-install-n7g7gqf_/psutil/setup.py'"'"'; __file__='"'"'/tmp/pip-install-n7g7gqf_/psutil/setup.py'"'"';f=getattr(tokenize                                                                                                           , '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'                                                                                                           exec'"'"'))' install --record /tmp/pip-record-cxodn_6f/install-record.txt --single-version-externally-managed --compile --install-                                                                                                           headers /pyenv/my_env/include/site/python3.6/psutil Check the logs for full command output.

(my_env) [root@TestBed pyenv]#



(my_env) [root@TestBed code]# ./hl.py
Traceback (most recent call last):
  File "./hl.py", line 4, in <module>
    import psutil
ModuleNotFoundError: No module named 'psutil'
大陸北方網友
  • 3,696
  • 3
  • 12
  • 37
  • 1
    Hi, welcome to stackoverflow. For posting a good question, always say what your goal is and what you already tried to achieve it. I dont want to read through 2 pages of logs to find out what you actually want to do. Also, regarding infrastructural issues, its always useful to post what environment you are using. – MichaelJanz Sep 11 '20 at 07:17
  • https://stackoverflow.com/search?q=%5Bpip%5D+fatal+error%3A+Python.h%3A+No+such+file+or+directory – phd Sep 11 '20 at 08:05

1 Answers1

1

The instructions for Linux include installing the python dev libraries first, then installing psutil:

sudo apt-get install gcc python3-dev
sudo pip3 install psutil

The error you're getting reports missing the python header file which is installed in python3-dev.

gregory
  • 10,969
  • 2
  • 30
  • 42
  • Not 100% sure, but OL7 uses `yum` instead of `apt-get`. – VPfB Sep 11 '20 at 07:06
  • yum or apt-get, regardless of the package manager to install software, you need to install python3-dev. The code snippet I provided was from psutil's documentation, which doesn't cover how to install on all linux variants. – gregory Sep 11 '20 at 14:36