python - gcc 应该在不传递 -I/usr/include/python2.7/的情况下找到 Python.h 吗?

标签 python c++ c gcc

我在RedHat上写了一个小c程序:

#include <Python.h>
#include <stdio.h>

int main() {
    printf("Hello, Python!\n");
    return 0;
}

并出现以下错误:

main.c:1:20: fatal error: Python.h: No such file or directory

所以我找到了以下答案:fatal error: Python.h: No such file or directory

已安装 python-devel。我确认/usr/include/python2.7/Python.h存在,并且仍然遇到相同的错误。

当然是在运行时gcc main.c -I/usr/include/python2.7/一切编译都很好。

我的问题是:

添加-I/usr/include/python2.7/是否正确编译时,或者是否存在 gcc 应该期望的某种内置环境变量(例如 PYTHON_DEV_HOME)。

我认为这是一个有点奇怪的问题,但我问的原因是因为我在 TensorFlow(git 克隆)中遇到了相同的错误,它应该立即编译。既然不是,我假设我的环境缺少一些东西......

最佳答案

这很正常。

您不能指望 gcc 读取 Python 环境变量 - gcc 独立于 Python 并且与其没有任何连接。 Python 可以使用 gcc,(可能)还有数千种其他产品,但其他编译器也应该可以使用。

gcc 环境变量列出 here 。看一下CPATH,它可以用来代替-I,但请确保您准确地阅读了它的作用。 C_INCLUDE_PATH 是一种替代方案。

关于python - gcc 应该在不传递 -I/usr/include/python2.7/的情况下找到 Python.h 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46048236/

相关文章:

c++ - vector 迭代器不是增量的

c - (类型转换为常量文字)为什么 C 程序的输出

c - 传输一个 "32bit float"变量

python - AttributeError : module object has no attribute "Series". 代码在 iPython 中有效

python /Django : How to display error messages on invalid login?

python - 字典排序不正确键 :value

c++ - 什么是 unicode/unistr.h?

c++ - 绳索数据结构和线

python - 如何在 python 中找到线阵列的声压级?

c - 在结构中存储和访问二维数组