41

我正在编译 psycopg2 并收到以下错误: Python.h:没有这样的文件或目录

如何编译它,Ubuntu12 x64。

4

7 回答 7

64

蟒蛇2:

sudo apt-get install python-dev

蟒蛇 3:

sudo apt-get install python3-dev
于 2013-11-07T18:36:47.597 回答
25

这是一个依赖问题。

我在 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
于 2014-09-08T11:26:02.420 回答
8

如果您查看 PostgreSQL 的常见问题解答页面(http://initd.org/psycopg/docs/faq.html),您会看到他们建议安装 pythons 开发包,通常称为python-dev. 您可以通过安装

sudo apt-get install python-dev

于 2013-11-07T18:39:17.610 回答
2

如 psycopg 文档http://initd.org/psycopg/docs/install.html中所述

Psycopg 是 libpq PostgreSQL 客户端库的 C 包装器。要从源安装它,您需要:

  • C 编译器
  • Python 头文件

它们通常安装在诸如python-dev之类的包中,一条消息错误如下:Python.h: no such file or directory表明您错过了提到的 python 头文件。

你怎么能解决它?首先,如果您没有使用虚拟环境,您需要检查虚拟环境或系统本身中安装了哪个 python 版本。您可以通过以下方式检查您的 python 版本:

python --version 

之后,您应该安装与虚拟环境或系统上安装的相同的 python-dev 版本。例如,如果你使用python3.7你应该安装

apt-get install python3.7-dev 

希望我的回答对任何人都有帮助

于 2020-01-16T16:39:37.700 回答
0

根据您的 pipenv 文件所需的 python 版本,您需要安装相应的 dev 文件。

我收到了这个错误,我的默认 python 版本是 3.8,但是 pipenv 文件需要 Python3.9 版本。所以我安装了python3.9 dev。

$ sudo apt install python3.9-dev
于 2022-01-24T06:31:19.810 回答
0

在 Fedora、Redhat 或 centos 上

蟒蛇2:

    sudo yum install python-devel

蟒蛇 3:

    sudo yum install python3-devel
于 2021-12-07T10:11:46.703 回答
0

虽然这里的所有答案都是正确的,但它们无论如何都无法正常工作:

- sudo apt-get install python3-dev 
- sudo apt-get install python3.5-dev
- etc ..

当您使用 python3.8、python3.9 或未来版本时将不适用

我建议改用确定性的方式:

sudo apt install python3-all-dev
于 2021-02-23T10:01:39.633 回答