如何在C中扩展Python?
我对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 个回答
根据我的经验,你需要在你的系统上安装Python的开发库。然后,你可以通过编写C语言代码来扩展Python,接着使用Python解释器来编译这些C代码。你可以参考这篇文章,了解如何扩展Python:如何扩展Python。
关于在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来进行开发,因为:
- Ubuntu的用户群体比PCLinux大得多
- 这里有很多人在Ubuntu上进行活跃的开发
- Ubuntu的仓库维护得很好,几乎没有什么是通过
apt
无法获取的 - 因此,让你的Python C扩展在那儿运行会非常简单
- 最后,由于以上原因,未来的问题会得到更多的回答,如果你在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扩展头文件。