我的Ubuntu系统有Python,但gcc找不到Python.h
我在学校的电脑上,所以我不能安装任何东西。
我想写一段可以在Python中运行的C代码。可是我发现的所有文章都要求使用
#include <Python.h>
我照做了,但编译的时候却报错说没有这样的文件或目录。
这台电脑上有Python(至少在终端里可以用python
命令,我们可以运行任何Python代码)。
我在终端里输入了locate Python.h
,但什么也没找到。
我有两个问题:
我能写不需要
Python.h
的C代码,然后在Python中调用吗?我是不是漏掉了什么,其实这台电脑上有
Python.h
?
15 个回答
47
你需要用 #include "python2.7/Python.h" 这个来代替 #include "Python.h"。
48
在Ubuntu系统上,你需要安装一个叫做python-dev
的包。因为这个包似乎没有安装(用locate Python.h
找不到任何东西),而你又不能自己在系统范围内安装它,所以我们需要找其他办法。
你可以在自己的家目录下安装Python——这样做不需要任何特别的权限。如果你可以使用网页浏览器并且能运行gcc,这个方法应该对你有效。为此,
下载这个源代码压缩包。
用下面的命令解压:
tar xjf Python-2.7.2.tar.bz2
用下面的命令构建并安装:
cd Python-2.7.2 ./configure --prefix=/home/username/python --enable-unicode=ucs4 make make install
现在,你在自己的家目录下有了完整的Python安装。在编译时,给gcc加上-I /home/username/python/include
的参数,这样它就能找到Python.h
了。在链接时,使用-L /home/username/python/lib
和-lpython2.7
。
73
你需要安装一个叫做 python-dev
的软件包,它里面包含了 Python.h
这个文件。