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

Python.h:没有这样的文件或目录,python,psycopg2,Python,Psycopg2,我正在编译psycopg2,出现以下错误: Python.h:没有这样的文件或目录 如何编译它,Ubuntu12 x64。Python 2: sudo apt-get install python-dev Python 3: sudo apt-get install python3-dev 如果您查看PostgreSQL的faq页面(),您会发现他们建议安装python开发包,该包通常被称为python dev。您可以通过 sudo-apt-get-install-python-dev 这是

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

如何编译它,Ubuntu12 x64。

Python 2:

sudo apt-get install python-dev
Python 3:

sudo apt-get install python3-dev

如果您查看PostgreSQL的faq页面(),您会发现他们建议安装python开发包,该包通常被称为
python dev
。您可以通过

sudo-apt-get-install-python-dev


这是一个依赖性问题

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

对于任何当前Python版本:

sudo apt-get install python-dev
sudo apt-get install python<version>-dev
对于其他Python版本:

sudo apt-get install python-dev
sudo apt-get install python<version>-dev

如psycopg文档中所述

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

  • C编译器
  • Python头文件
它们通常安装在一个包中,比如python dev一条消息错误,比如:python.h:没有这样的文件或目录,这表明您遗漏了提到的python头

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

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

apt-get install python3.7-dev 

希望我的答案能对任何人有所帮助

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

- sudo apt-get install python3-dev 
- sudo apt-get install python3.5-dev
- etc ..
在使用python3.8、python3.9或未来版本时不适用

我建议改用确定性方法:

sudo apt install python3-all-dev

当仅仅“sudo-apt-get-install-python3”不行的时候,“sudo-apt-get-install-python3.6-dev”帮我解决了这个问题!为了清晰起见,我根据添加的细节投票选出最佳答案。指定版本对我很有用。示例:
sudo apt get install python3.8-dev
python3.7的相同问题。要安装,请运行$sudo apt get install python3.7-dev