我正在编译 psycopg2 并收到以下错误: Python.h:没有这样的文件或目录
如何编译它,Ubuntu12 x64。
蟒蛇2:
sudo apt-get install python-dev
蟒蛇 3:
sudo apt-get install python3-dev
这是一个依赖问题。
我在 Ubuntu 上使用apt-get
. 用适合您系统的包管理器替换它。
对于任何当前的 Python 版本:
sudo apt-get install python-dev
对于替代 Python 版本:
sudo apt-get install python<version>-dev
例如 3.5 作为替代方案:
sudo apt-get install python3.5-dev
如果您查看 PostgreSQL 的常见问题解答页面(http://initd.org/psycopg/docs/faq.html),您会看到他们建议安装 pythons 开发包,通常称为python-dev
. 您可以通过安装
sudo apt-get install python-dev
如 psycopg 文档http://initd.org/psycopg/docs/install.html中所述
Psycopg 是 libpq PostgreSQL 客户端库的 C 包装器。要从源安装它,您需要:
它们通常安装在诸如python-dev之类的包中,一条消息错误如下:Python.h: no such file or directory表明您错过了提到的 python 头文件。
你怎么能解决它?首先,如果您没有使用虚拟环境,您需要检查虚拟环境或系统本身中安装了哪个 python 版本。您可以通过以下方式检查您的 python 版本:
python --version
之后,您应该安装与虚拟环境或系统上安装的相同的 python-dev 版本。例如,如果你使用python3.7
你应该安装
apt-get install python3.7-dev
希望我的回答对任何人都有帮助
根据您的 pipenv 文件所需的 python 版本,您需要安装相应的 dev 文件。
我收到了这个错误,我的默认 python 版本是 3.8,但是 pipenv 文件需要 Python3.9 版本。所以我安装了python3.9 dev。
$ sudo apt install python3.9-dev
在 Fedora、Redhat 或 centos 上
蟒蛇2:
sudo yum install python-devel
蟒蛇 3:
sudo yum install python3-devel
虽然这里的所有答案都是正确的,但它们无论如何都无法正常工作:
- sudo apt-get install python3-dev
- sudo apt-get install python3.5-dev
- etc ..
当您使用 python3.8、python3.9 或未来版本时将不适用
我建议改用确定性的方式:
sudo apt install python3-all-dev