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

如何编译它,Ubuntu12 x64。

有帮助吗?

解决方案

Python 2:

sudo apt-get install python-dev

Python 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安装python-dev

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

Psycopg是Libpq Postgresql客户库库周围的C包装器。要从来源安装它,您需要:

  • C编译器
  • Python标头文件

它们通常安装在包装中,例如 python-dev 消息错误这样: python.h:没有这样的文件或目录 表明您错过了提到的Python标题。

您如何解决?首先,如果您不使用虚拟环境,则需要检查在虚拟设想中或系统本身中安装的Python版本。您可以通过:

python --version 

之后,您应该安装在虚拟env或系统上安装的相同的Python-DEV版本。例如,如果您使用 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

在软呢帽,redhat或centos上

Python 2:

    sudo yum install python-devel

Python 3:

    sudo yum install python3-devel

根据Pipenv文件所需的Python版本,您需要安装相应的DEV文件。

我遇到了这个错误,默认的Python版本为3.8,但是PipEnv文件需要Python3.9版本。因此,我安装了Python3.9 Dev。

$ sudo apt install python3.9-dev
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top