当前位置: 首页>>技术教程>>正文


我的Ubuntu系统上有Python,但是gcc找不到Python.h

, , ,

问题描述

我在学校的电脑上,所以无法安装任何东西。

我正在尝试创建可以在Python中运行的C代码。我发现的所有文章似乎都需要您使用

#include <Python.h>

我这样做,但是在编译时会抱怨没有这样的文件或目录。

该计算机具有Python(至少在终端中具有python命令,我们可以运行所需的任何Python代码)。

我在终端中输入locate Python.h,但未找到任何内容。

我有两个问题:

  1. 我可以编写无需Python.h即可在Python中调用的C代码吗?

  2. 我是否缺少某些东西,并且计算机上实际上有Python.h

最佳方法

您需要包含Python.hpython-dev软件包

次佳方法

在Ubuntu上,您需要安装一个名为python-dev的软件包。由于似乎未安装此软件包(locate Python.h找不到任何内容),并且您无法自己安装system-wide,因此我们需要其他解决方案。

您可以在主目录中安装Python-不需要任何特殊权限。如果允许您使用网络浏览器并运行gcc,则此方法将为您工作。为此

  1. 下载the source tarball

  2. 解压缩

    tar xjf Python-2.7.2.tar.bz2
    
  3. 构建并安装

    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:
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
有关更多发行版,请参考-https://stackoverflow.com/a/21530768/6841045

第八种方法

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8773.html,未经允许,请勿转载。