fatal error: Python.h: No such file or directory compilation terminated
pip安装时报【fatal error: Python.h: No such file or directory compilation terminated】错误
用pip安装第三方包的时候,有时候会遇到fatal error: Python.h: No such file or directory compilation terminated这样的报错。因为这些库使用了c扩展,需要编译,然后又找不到头文件和静态库导致的。编译这些c库需要的依赖库由python dev提供,安装即可:
For apt (Ubuntu, Debian...):
sudo apt-get install python-dev   # for python2.x installs
sudo apt-get install python3-dev  # for python3.x installs
For yum (CentOS, RHEL...):
sudo yum install python-devel   # for python2.x installs
sudo yum install python34-devel   # for python3.4 installs
For dnf (Fedora...):
sudo dnf install python2-devel  # for python2.x installs
sudo dnf install python3-devel  # for python3.x installs
For zypper (openSUSE...):
sudo zypper in python-devel   # for python2.x installs
sudo zypper in python3-devel  # for python3.x installs
sudo pip install rpy2==2.8.5
[sudo] password for gfk: 
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
WARNING: The directory '/home/gfk/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting rpy2==2.8.5
  Downloading rpy2-2.8.5.tar.gz (184 kB)
     |████████████████████████████████| 184 kB 318 kB/s 
Requirement already satisfied: six in /home/gfk/.local/lib/python2.7/site-packages (from rpy2==2.8.5) (1.16.0)
Requirement already satisfied: singledispatch in /usr/local/lib/python2.7/dist-packages (from rpy2==2.8.5) (3.6.2)
Using legacy 'setup.py install' for rpy2, since package 'wheel' is not installed.
Installing collected packages: rpy2
    Running setup.py install for rpy2 ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ZaXkTG/rpy2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ZaXkTG/rpy2/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-F5IwRY/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python2.7/rpy2
         cwd: /tmp/pip-install-ZaXkTG/rpy2/
    Complete output (139 lines):
    R version 4.1.0 (2021-05-18) -- "Camp Pontanezen"
    /usr/lib/R/bin/R CMD config --ldflags
    /usr/lib/R/bin/R CMD config --cppflags
    
        Compilation parameters for rpy2's C components:
            include_dirs    = ['/usr/share/R/include']
            library_dirs    = ['/usr/lib/R/lib']
            libraries       = ['R', 'pcre2-8', 'lzma', 'bz2', 'z', 'rt', 'dl', 'm']
            extra_link_args = ['-Wl,--export-dynamic', '-fopenmp', '-Wl,-Bsymbolic-functions', '-Wl,-z,relro']
    
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/rpy2
    copying ./rpy/__init__.py -> build/lib.linux-x86_64-2.7/rpy2
    copying ./rpy/rpy_classic.py -> build/lib.linux-x86_64-2.7/rpy2
    copying ./rpy/tests.py -> build/lib.linux-x86_64-2.7/rpy2
    copying ./rpy/tests_rpy_classic.py -> build/lib.linux-x86_64-2.7/rpy2
    creating build/lib.linux-x86_64-2.7/rpy2/rlike
    copying ./rpy/rlike/container.py -> build/lib.linux-x86_64-2.7/rpy2/rlike
    copying ./rpy/rlike/indexing.py -> build/lib.linux-x86_64-2.7/rpy2/rlike
    copying ./rpy/rlike/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/rlike
    copying ./rpy/rlike/functional.py -> build/lib.linux-x86_64-2.7/rpy2/rlike
    creating build/lib.linux-x86_64-2.7/rpy2/rlike/tests
    copying ./rpy/rlike/tests/test_functional.py -> build/lib.linux-x86_64-2.7/rpy2/rlike/tests
    copying ./rpy/rlike/tests/test_indexing.py -> build/lib.linux-x86_64-2.7/rpy2/rlike/tests
    copying ./rpy/rlike/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/rlike/tests
    copying ./rpy/rlike/tests/test_container.py -> build/lib.linux-x86_64-2.7/rpy2/rlike/tests
    creating build/lib.linux-x86_64-2.7/rpy2/rinterface
    copying ./rpy/rinterface/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface
    creating build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_Device.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpEnvironment.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_Sexp.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpExtPtr.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpClosure.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpVector.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpVectorNumeric.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_SexpSymbol.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    copying ./rpy/rinterface/tests/test_EmbeddedR.py -> build/lib.linux-x86_64-2.7/rpy2/rinterface/tests
    creating build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/functions.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/robject.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/language.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/numpy2ri.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/packages.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/environments.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/vectors.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/help.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/constants.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/conversion.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/packages_utils.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/pandas2ri.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    copying ./rpy/robjects/methods.py -> build/lib.linux-x86_64-2.7/rpy2/robjects
    creating build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testRobjects.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testEnvironment.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testPackages.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testHelp.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testPandasConversions.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testFormula.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testVector.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testLanguage.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testArray.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testRObject.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testFunction.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testDataFrame.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testNumpyConversions.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    copying ./rpy/robjects/tests/testMethods.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/tests
    creating build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/grid.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/ggplot2.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/tidyr.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/grdevices.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    copying ./rpy/robjects/lib/dplyr.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib
    creating build/lib.linux-x86_64-2.7/rpy2/robjects/lib/tests
    copying ./rpy/robjects/lib/tests/test_grdevices.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib/tests
    copying ./rpy/robjects/lib/tests/test_dplyr.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib/tests
    copying ./rpy/robjects/lib/tests/test_ggplot2.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib/tests
    copying ./rpy/robjects/lib/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/robjects/lib/tests
    creating build/lib.linux-x86_64-2.7/rpy2/interactive
    copying ./rpy/interactive/packages.py -> build/lib.linux-x86_64-2.7/rpy2/interactive
    copying ./rpy/interactive/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/interactive
    copying ./rpy/interactive/process_revents.py -> build/lib.linux-x86_64-2.7/rpy2/interactive
    creating build/lib.linux-x86_64-2.7/rpy2/interactive/tests
    copying ./rpy/interactive/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/interactive/tests
    creating build/lib.linux-x86_64-2.7/rpy2/ipython
    copying ./rpy/ipython/ggplot.py -> build/lib.linux-x86_64-2.7/rpy2/ipython
    copying ./rpy/ipython/html.py -> build/lib.linux-x86_64-2.7/rpy2/ipython
    copying ./rpy/ipython/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/ipython
    copying ./rpy/ipython/rmagic.py -> build/lib.linux-x86_64-2.7/rpy2/ipython
    creating build/lib.linux-x86_64-2.7/rpy2/ipython/tests
    copying ./rpy/ipython/tests/__init__.py -> build/lib.linux-x86_64-2.7/rpy2/ipython/tests
    copying ./rpy/ipython/tests/test_rmagic.py -> build/lib.linux-x86_64-2.7/rpy2/ipython/tests
    running build_clib
    building 'r_utils' library
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/rpy
    creating build/temp.linux-x86_64-2.7/rpy/rinterface
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I./rpy/rinterface -I/usr/share/R/include -c ./rpy/rinterface/r_utils.c -o build/temp.linux-x86_64-2.7/./rpy/rinterface/r_utils.o
    In file included from /usr/share/R/include/Rdefines.h:36:0,
                     from ./rpy/rinterface/r_utils.c:23:
    /usr/share/R/include/R_ext/Memory.h:48:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
     int R_gc_running();
     ^
    In file included from /usr/share/R/include/Rinternals.h:51:0,
                     from /usr/share/R/include/Rdefines.h:40,
                     from ./rpy/rinterface/r_utils.c:23:
    /usr/share/R/include/R_ext/Rdynload.h:38:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
     typedef void * (*DL_FUNC)();
     ^
    In file included from /usr/share/R/include/Rdefines.h:40:0,
                     from ./rpy/rinterface/r_utils.c:23:
    /usr/share/R/include/Rinternals.h:1228:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
     SEXP R_GetCurrentEnv();
     ^
    /usr/share/R/include/Rinternals.h:1229:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
     const char *R_curErrorBuf();
     ^
    /usr/share/R/include/Rinternals.h:1306:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
     void R_init_altrep();
     ^
    /usr/share/R/include/Rinternals.h:1321:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
     SEXP R_MakeUnwindCont();
     ^
    x86_64-linux-gnu-gcc-ar rc build/temp.linux-x86_64-2.7/libr_utils.a build/temp.linux-x86_64-2.7/./rpy/rinterface/r_utils.o
    running build_ext
    R version 4.1.0 (2021-05-18) -- "Camp Pontanezen"
    building 'rpy2.rinterface._rinterface' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DR_INTERFACE_PTRS=1 -DHAVE_POSIX_SIGJMP=1 -DRIF_HAS_RSIGHAND=1 -DCSTACK_DEFNS=1 -DHAS_READLINE=1 -I./rpy/rinterface -I/usr/share/R/include -I/usr/include/python2.7 -c ./rpy/rinterface/_rinterface.c -o build/temp.linux-x86_64-2.7/./rpy/rinterface/_rinterface.o
    ./rpy/rinterface/_rinterface.c:49:20: fatal error: Python.h: No such file or directory
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ZaXkTG/rpy2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ZaXkTG/rpy2/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-F5IwRY/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python2.7/rpy2 Check the logs for full command output.
  
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号