【问题标题】:Compiler can't find Python.h编译器找不到 Python.h
【发布时间】:2011-08-19 17:58:33
【问题描述】:

我对 C 有点陌生,但我似乎无法做我想做的事。我需要为 C 函数做一些 Python 绑定,我想我可以解决这个问题。但是有一条小线是行不通的。

#include <Python.h>

我明白了:

fatal error #1035: Can't find include file <Python.h>.

我什么都试过了。我只是先将 Python.h 放在与我的项目相同的文件夹中。然后我将文件名放在链接器下的库和对象文件中。然后我对 python31.lib 做了同样的事情,然后我把 python31.lib 所在的目录放在我的 PATH 变量中。没有什么能让我越过这条线。我在网上看到很多针对 Linux 的解决方案,但没有针对 Windows 的解决方案。请帮忙!

【问题讨论】:

  • #include "Python.h" 会在同一个目录中找到它。链接是一个不同的问题。检查您的包含路径。你传递给 GCC 的命令行是什么?
  • @nmichaels 看起来他是在 Windows 中构建的,所以 GCC 是无关紧要的。
  • 如果您只需要为 C 函数生成 Python 绑定,请使用 code.google.com/p/ctypesgen,它可能会自动完成。
  • 哦!谢啦!我以为我搞砸了,然后我读到如果文件与我的源文件位于同一目录中,它应该找到该文件(它没有)。但我想我会继续检查我的包含路径(我什至不知道存在)。所以我将 Python 包含路径添加到包含路径列表中,并对 Python 库(到库路径)做了同样的事情,它编译时没有任何问题。为什么我之前没有发现堆栈溢出???你们是最棒的!
  • @Santa 谢谢你的无关紧要。明年我能买到一只犀牛吗?

标签: python compilation python-c-extension


【解决方案1】:

哎呀,在评论中回答。这是一个更有答案的答案。

确保将Python.h 放在包含路径中,并将库放在库路径中。

【讨论】:

  • 现在,人们将永远能够使用 Google 解决这个愚蠢的问题 :)
【解决方案2】:

试试:

sudo apt-get install python2.6-dev

如果你的 Python 版本是 python2.6

【讨论】:

  • 这可能取决于正在编译的内容,但简单的sudo apt-get install python-dev 对我来说效果很好。
猜你喜欢
  • 2016-09-17
  • 1970-01-01
  • 2018-03-24
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 2012-04-20
  • 2015-06-27
相关资源
最近更新 更多