如何在c中扩展python?

时间:2010-11-21 13:47:52

标签: python c gcc swig extending

我擅长Python编程。我正在尝试使用自己的c程序扩展python。 我有一些教程,但我的操作系统相当蹩脚。它说

  

找不到python.h

我也尝试过OpenGL编程。 我不得不面对类似的错误

  

未找到GL / gl.h

我想我的Linux上没有GL dev-library。但我确定python.h在我的硬盘上,因为我发现它在正确的目录中。

我正在使用PCLinux OS 2010 Dell Vostro 1510 with Intel 1.8GHz Q2duo
2Gb ram
gcc4.4.1

我无法在Windows上使用Swig,因为我无法在其上安装gcc。 Swig不会在我目前的操作系统上运行。如果我自己编写代码,则会显示此类错误。 (我确定代码的完整性,因为它是一个示例文件)

请告诉我在我当前的操作系统中编译.so文件以扩展python的过程 OR
请告诉我哪种操作系统最适合这种编程的东西 OR
告诉我如何在Windows中为Windows工作安装所有功能。
OR
是否有一个IDE可以帮助我解决这个问题。

请帮帮我。我一直在试图做这个问题很长时间。 我厌倦了理想化的教程,假设理想的功能计算机,每件事都有效。谢谢

我不是专家程序员。但我做了一些非常有趣的事情。我在turbo上学习编程c++.gcc对我来说不是什么新鲜事。请考虑我的新手问题。

2 个答案:

答案 0 :(得分:6)

就编译PCLinux上的内容而言,似乎你确实错过了头文件。

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

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

这将安装python头文件,即OpenGL头文件。

至于获取在Windows上运行的东西,你需要设置一个posix环境(cygwin或mingw)以便能够在那里使用gcc,更多关于该主题可以在这个问题中找到:
What is the difference between Cygwin and MinGW?

<强>更新
我读了一些关于PCLinuxOS的内容,看起来非常糟糕,这意味着它从它的存储库中遗漏了很多东西。

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

  1. Ubuntu的用户群比PCLinux的用户群大很多
  2. 这里有很多人在Ubuntu上积极开发
  3. Ubuntu的存储库维护得更好,几乎没有人无法通过apt
  4. 因此,让你的python c扩展程序运行会有琐碎
  5. 最后但并非最不重要的是,由于上述事实,未来的问题会得到更多答案,如果你遇到Ubuntu本身的问题,甚至会有stackexchange site
  6. 使用良好的开发环境可以节省大量时间和麻烦。

    更新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扩展头文件。

答案 1 :(得分:1)

根据我的经验,您需要在系统上安装Python开发库,并通过编写C代码然后使用Python解释器编译C代码来扩展Python。例如,请参阅文章How to extend Python