0%

Python.h: No such file or directory

最近使用 pip 安装的时候遇到了一个关于 Python.hapt_pkg 的错误。在我的印象中这个错误挺常见的,所以记录一下解决方案。

通过 pip 安装一些包,比如 psutil,会报一个比较常见的错误:

  • psutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory

这个错误主要是 python-dev 这个包没安装到位。比如 ubuntu18.04 自带的是 python3.6。如果你安装了 python3.7,设置不到位,就会导致这个错误。常见的解决办法就是: sudo apt install -fy python3.7-dev

在解决这个问题的时候发现另一个问题,add-apt-repository 错误:

  • ModuleNotFoundError: No module named 'apt_pkg'

主要原因是系统默认的是 python3.5,当前运行环境中的 python3 不是 python3.5。导致一些运行时库连接错误。解决办法(python3.7 为例):

sudo cp /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/apt_pkg.cpython-37m-x86_64-linux-gnu.so

总之上述错误多半都是由于修改了系统默认自带的 python 导致。