我正在编译psycopg2并收到以下错误: Python.h:没有这样的文件或目录
如何编译它,Ubuntu12 x64。
答案 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包装器。要从源代码安装它,您将需要:
它们通常安装在诸如 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