4

我有兴趣在 Python 中使用 OpenGL。我在 C++ 和 Objective-C 中使用过 OpenGL,但我在 Python 方面没有太多经验。我想知道是否有适用于雪豹的好教程。如果可能的话,我宁愿保持在 64 位模式,因为我听说 32 位程序需要加载很多额外的 32 位库。

我已经尝试过PyOpenGL/wxPython 教程。当我运行代码时,它因以下消息而崩溃:

ImportError: /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode/wx/_core_.so: no appropriate 64-bit architecture (see "man python" for running in 32-bit mode)

看起来 wxPython 中有一个错误阻止它在 64 位系统上工作。

我也查看了 Pyglet,但他们也有类似的问题。他们提供了一种解决方法(将 Python 设置为 32 位模式),但看起来他们不会修复它。

最后,我查看了 PyGLUT,但我认为它仅适用于 Windows。

是否有任何其他库可以让我访问 OpenGL 并在屏幕上绘图?同样,我更喜欢保持在 64 位模式,但如果没有任何效果,我将切换到 32 位并再次尝试 wxPython 或 Pyglet。


编辑:我也试过 PyGame。这取决于在 SL中被破坏的 SDL。我曾想过尝试通过 PyObjc 使用 Cocoa,但 Xcode Python 应用程序模板已被删除

4

4 回答 4

4

我在 Snow Leopard 上非常成功地使用了 PyOpenGL 3.0.0。它使用 ctypes,因此如果这些库可用(并且 Snow Leopard 的 Python 包含 64 位版本),它应该进行 64 位调用。我没有将 wxPython 的东西与 PyOpenGL 一起使用,因此您可能会遇到问题,但 PyOpenGL 还包括 GLUT,它们都运行良好。

于 2009-09-07T17:47:23.673 回答
2

可能没有充分的理由避免使用 32 位模式。当然,除非你的 Python 程序需要更大的地址空间。

于 2009-09-07T17:13:13.320 回答
0

你可以试试pygame。Pygame 是一个围绕 SDL 的 python 包装器。根据他们的网站,他们有 Max OS X 二进制文件。这是一个使用 OpenGL 的 pygame的简单示例。一旦您能够创建窗口并处理事件,大多数 OpenGL 编程就像在 C 或 C++ 中一样,但添加了一些 Python 优点。对于 OpenGL,一个很棒的教程是 NeHe。

于 2009-09-07T17:01:35.590 回答
0

此外,当在 python 中使用 OpenGL 编程时,请记住,当涉及到 3D 图形的要求时,Python 数据结构可能会相当慢。例如,PyGL 开发人员建议将 ctypes 用于涉及图形的操作,因为这样您可以获得足够的性能来处理具有可承载 FPS 的一些复杂几何图形。

于 2009-09-07T17:24:21.143 回答