问题描述
我在学校的电脑上,所以无法安装任何东西。
我正在尝试创建可以在Python中运行的C代码。我发现的所有文章似乎都需要您使用
#include <Python.h>
我这样做,但是在编译时会抱怨没有这样的文件或目录。
该计算机具有Python(至少在终端中具有python
命令,我们可以运行所需的任何Python代码)。
我在终端中输入locate Python.h
,但未找到任何内容。
我有两个问题:
-
我可以编写无需
Python.h
即可在Python中调用的C代码吗? -
我是否缺少某些东西,并且计算机上实际上有
Python.h
?
最佳方法
您需要包含Python.h
的python-dev
软件包
次佳方法
在Ubuntu上,您需要安装一个名为python-dev
的软件包。由于似乎未安装此软件包(locate Python.h
找不到任何内容),并且您无法自己安装system-wide,因此我们需要其他解决方案。
您可以在主目录中安装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安装。编译时将-I /home/username/python/include
传递给gcc以使其了解Python.h
。链接时传递-L /home/username/python/lib
和-lpython2.7
。
第三种方法
您必须使用#include “python2.7/Python.h”而不是#include “Python.h”。
第四种方法
对于Ubuntu 15.10和Python 3,由于没有Python.h
但具有管理权限,因此出现此问题,可以通过以下方法解决:
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
第五种方法
在ubuntu上,您只需在终端中键入sudo apt-get install python-dev -y
即可安装python-dev软件包。
第六种方法
现在,头文件由libpython2.7-dev提供。
您可以使用search form at packages.ubuntu.com来查找提供Python.h
的软件包。
第七种方法
您需要安装python-dev。对于Ubuntu:
有关更多发行版,请参考-https://stackoverflow.com/a/21530768/6841045
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
第八种方法
我在ubuntuforums(ubuntuforums)中找到了答案,您可以将其添加到您的gcc ‘$(python-config –includes)’
gcc $(python-config --includes) urfile.c
第九种方法
我在尝试在CentOS 7机器上构建omniORB的非常旧的副本时遇到了同样的问题。通过安装python开发库解决了该问题:
# yum install python-devel
这将Python.h安装到:
/usr/include/python2.7/Python.h