我在我的Ubuntu系统上有Python,但gcc找不到Python.h
我在学校的电脑上,所以我不能安装任何东西。
我正在尝试创build可以在Python中运行的C代码。 看来我所find的所有文章都要求你使用
#include <Python.h> 我这样做,但是当我编译它抱怨说没有这样的文件或目录。
 电脑有Python(至less它在terminal有python命令,我们可以运行任何我们想要的Python代码)。 
 我在terminal中键入了locate Python.h ,但是什么也没find。 
我有两个问题:
- 
我可以编写C代码,我可以用Python调用没有 Python.h?
- 
我错过了什么,而电脑实际上有 Python.h?
 你需要包含Python.h的python-dev包 
 在Ubuntu上,您需要安装一个名为python-dev的软件包。 由于这个包似乎没有安装( locate Python.h没有find任何东西),你locate Python.h安装它,我们需要一个不同的解决scheme。 
你可以在你的主目录下安装Python – 你不需要任何特殊的权限来执行此操作。 如果您可以使用Web浏览器并运行gcc,这应该适用于您。 为此
- 
下载源代码压缩包 。 
- 
解压缩 tar xjf Python-2.7.2.tar.bz2
- 
build立和安装 cd Python-2.7.2 ./configure --prefix=/home/username/python --enable-unicode=ucs4 make make install
 现在,你的主目录中有一个完整的Python安装。 在编译时将-I /home/username/python/include传递给gcc以使其知道Python.h 。 链接时传递-L /home/username/python/lib和-lpython2.7 。 
你必须使用#include“python2.7 / Python.h”而不是#include“Python.h” 。
 在Ubuntu上你可以在terminal上inputsudo apt-get install python-dev -y来安装python-dev软件包。 
 对于Ubuntu 15.10和Python 3来说,由于它们没有Python.h但是具有pipe理权限,因此可以解决这个问题: 
 sudo apt-get install python-dev sudo apt-get install python3-dev sudo apt-get install libpython3-dev sudo apt-get install libpython3.4-dev sudo apt-get install libpython3.5-dev 
头文件现在由libpython2.7-dev提供 。
 您可以使用packages.ubuntu.com上的search表单来找出Python.h提供的包。 
我试图在CentOS 7机器上构build一个非常旧的omniORB副本时遇到了同样的问题。 通过安装python开发库解决了这个问题:
 # yum install python-devel 
这将Python.h安装到:
/usr/include/python2.7/Python.h
去新立得包pipe理器。 重新加载 – >searchpython – >select你想要的Python包 – >提交 – >为我安装Works;)
确切地说,你需要安装的软件包是python-dev。
这意味着你不是为Python开发安装库。
如果你在Linux操作系统上,你可以通过下面的命令分别解决这个问题:
- 
Ubuntu(Debian): sudo apt-get install python-dev(Py2)或者sudo apt-get install python3-dev(Py3)
- 
Rehat(CentOS): yum install python-devel
 发生这种情况是因为Python.h不在默认包含文件夹(即/usr/include/ )中。 
安装Python-dev可能会有所帮助:
 $ sudo apt-get install python-dev 
 但是大多数情况下问题会持续下去,因为开发包是在包含文件夹本身( /usr/include/python2.7或python3 )内的单独文件夹中创build的。 
 所以你应该在gcc使用-I选项来指定库文件夹,或者在这些文件夹中创build软链接到外部(我更喜欢前一个选项)。 
  在gcc使用-I选项: 
 $ gcc -o hello -I /usr/include/python2.7 helloworld.c 
创build软链接:
 $ sudo ln -sv /usr/include/python2.7/* /usr/include/