如何在C中扩展Python?

0 投票
2 回答
678 浏览
提问于 2025-04-16 07:25

我对Python编程还不错,现在想用自己的C程序来扩展Python。虽然我找了一些教程,但我的操作系统实在太差了。它提示我:

找不到python.h

我还尝试过在里面做OpenGL编程,也遇到了类似的错误:

找不到GL/gl.h

我觉得我的Linux系统上没有GL开发库。不过我很确定python.h在我的硬盘上,因为我在正确的目录里找到了它。

我用的是PCLinux OS 2010,我的电脑是Dell Vostro 1510,配有Intel 1.8GHz Q2duo
2Gb内存
gcc4.4.1

我在Windows上不能使用Swig,因为我没法安装gcc。Swig在我现在的操作系统上也无法运行。如果我自己写代码,就会出现这种错误。(我很确定代码是完整的,因为它是一个示例文件)

请告诉我在我现在的操作系统上编译.so文件以扩展Python的步骤
或者
请告诉我哪个操作系统最适合这种编程工作。
或者
告诉我如何在Windows上安装所有需要的功能来完成这项工作。
或者
有没有什么IDE可以帮助我解决这个问题。

请帮帮我。我已经为此绞尽脑汁很久了。对于那些假设一切都能正常工作的理想化教程,我感到很疲惫。谢谢你。

我不是专家程序员,但我做过一些挺有意思的事情。我是在Turbo C++上学习编程的,gcc对我来说有点新。请考虑我的初学者问题。

2 个回答

1

根据我的经验,你需要在你的系统上安装Python的开发库。然后,你可以通过编写C语言代码来扩展Python,接着使用Python解释器来编译这些C代码。你可以参考这篇文章,了解如何扩展Python:如何扩展Python

6

关于在PCLinux上编译的事情,看来你确实缺少了一些头文件。

你需要通过包管理器来安装它们:

sudo apt-get install python-devel
sudo apt-get install libnvidia-xorg1-devel

这会安装Python的头文件和OpenGL的头文件。

至于在Windows上运行这些东西,你需要设置一个posix环境(可以选择cygwin或mingw),这样才能在那儿使用gcc。关于这个话题,你可以查看这个问题:
Cygwin和MinGW有什么区别?

更新
我了解了一下PCLinuxOS,似乎它的问题不少,意味着它的仓库缺少很多东西。

我建议你使用Ubuntu来进行开发,因为:

  1. Ubuntu的用户群体比PCLinux大得多
  2. 这里有很多人在Ubuntu上进行活跃的开发
  3. Ubuntu的仓库维护得很好,几乎没有什么是通过apt无法获取的
  4. 因此,让你的Python C扩展在那儿运行会非常简单
  5. 最后,由于以上原因,未来的问题会得到更多的回答,如果你在Ubuntu上遇到问题,还有一个stackexchange网站

使用一个好的开发环境可以为你节省很多时间和麻烦。

更新2 在Ubuntu上安装头文件

sudo apt-get install python-dev
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install libglew1.5-dev

这将安装Python头文件、OpenGL头文件、OpenGL工具头文件和OpenGL扩展头文件。

撰写回答