psycopg:Python.h:没有这样的文件或目录

时间:2013-11-07 18:36:05

标签: python psycopg2

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

如何编译它,Ubuntu12 x64。

5 个答案:

答案 0 :(得分:42)

Python 2:

sudo apt-get install python-dev

Python 3:

sudo apt-get install python3-dev

答案 1 :(得分:8)

如果你看一下PostgreSQL的faq页面(http://initd.org/psycopg/docs/faq.html),你会发现他们建议安装pythons开发包,通常称为python-dev。您可以通过

安装
  

sudo apt-get install python-dev

答案 2 :(得分:8)

这是一个依赖问题。

我使用apt-get在Ubuntu上解决了这个问题。用适合您系统的包管理器替换它。

对于任何当前的Python版本:

sudo apt-get install python-dev

对于替代Python版本:

sudo apt-get install python<version>-dev

例如3.5替代:

sudo apt-get install python3.5-dev

答案 3 :(得分:1)

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

中所述

Psycopg是一个围绕libpq PostgreSQL客户端库的C包装器。要从源代码安装它,您将需要:

  • C编译器
  • Python头文件

它们通常安装在诸如 python-dev 之类的软件包中,并显示以下消息错误: Python.h:没有这样的文件或目录表示您错过了提到的python标头

如何解决?首先,如果您不使用虚拟环境,则需要检查在虚拟环境或系统本身中安装了哪个python版本。您可以通过以下方式检查python版本:

python --version 

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

apt-get install python3.7-dev 

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

答案 4 :(得分: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