【发布时间】:2017-09-05 06:23:21
【问题描述】:
我在RedHat上写了一个小c程序:
#include <Python.h>
#include <stdio.h>
int main() {
printf("Hello, Python!\n");
return 0;
}
并得到以下错误:
main.c:1:20:致命错误:Python.h:没有这样的文件或目录
于是我找到了以下答案: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 cloned) 上遇到了同样的错误,应该立即编译。既然不是,我认为我的环境缺少一些东西......
【问题讨论】:
-
stackoverflow.com/a/21530866/674064 好像表示这是正常的。
-
不要设置任何环境变量,将
-I/usr/include/python2.7明确传递给gcc。编写一个 makefile 来自动执行该任务。如果您正在创建其他人可以在他们的机器上构建的真实软件,您需要某种自动配置工具来根据本地环境自动构建 makefile 或类似的构建脚本。如果你只是在学习,你也可以只使用 `#include而不是所有这些。