PyOpenGL 3.x The Python OpenGL Binding

About PyOpenGL

PyOpenGL is the most common cross platform Python binding to OpenGL and related APIs. The binding is created using the standard ctypes library, and is provided under an extremely liberal BSD-style Open-Source license.

PyOpenGL Supports

PyOpenGL is interoperable with a large number of external GUI libraries for Python including (but not limited to):

PyOpenGL 3.x runs on:


The PyOpenGL project includes a number of sub-projects:

Downloading and Installation

The easiest way to install PyOpenGL is using pip

$ pip install PyOpenGL PyOpenGL_accelerate

You can also manually download the packages:

unpack them into temporary directories, change to those directories and run:


Detailed installation instructions are available.


The documentation collection provides reference documentation, support and feedback information and pointers to more in-depth documentation.

Source Code

You can work with latest version of PyOpenGL using the bzr distributed source code control tool on the LaunchPad code-hosting platform:

bzr branch lp:pyopengl
bzr branch lp:pyopengl-demo
bzr branch lp:openglcontext

Contributions and patches are very welcome.  You can either request a merge via LaunchPad or send a patch-set via email using "bzr send" to


Bugs and general questions are best reported and answered on the PyOpenGL mailing list.  The list is fairly low-traffic.

Other Libraries

There are quite a few 3D-related libraries available for use with Python, many of them either based on, or extensible with PyOpenGL.  PyOpenGL's author collects pointers to them on his site.  There is another commonly used binding of OpenGL for Python which is part of the Pyglet game development environment.