我在我的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/