【问题标题】:How to extend python in c?如何在c中扩展python?
【发布时间】:2010-11-21 13:47:51
【问题描述】:

我擅长 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 的过程

请告诉我哪种操作系统最适合这种编程工作。

告诉我如何将所有功能安装到 Windows 中以完成这项工作。

有没有 IDE 可以帮我解决这个问题。

请帮助我。很长一段时间以来,我一直在摸不着头脑,试图做到这一点。 我厌倦了理想化的教程,这些教程假设所有东西都能正常工作的理想功能计算机。谢谢你

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

【问题讨论】:

  • GCC (MinGW) 和 SWIG 都应该在 Windows 上工作。
  • @Kos,他使用的不是 Windows,而是 PCLinux OS 2010。
  • 他明明说不能在Windows上安装gcc。

标签: python c gcc swig extending


【解决方案1】:

就在 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

使用良好的开发环境可以为您节省大量时间和麻烦。

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

【讨论】:

  • 非常感谢您的建议。
  • 今晚我会尝试安装 Ubuntu。
  • 要注意的另一件事是大写——我认为标头名为 Python.h,而不是 python.h。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    相关资源
    最近更新 更多