Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2009-06-30 20:25:58
Size: 1623
Editor: BramGeron
Comment: Create.
Revision 3 as of 2010-07-19 02:22:55
Size: 1757
Editor: MarkReed
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
As of PyOpenGL 3.0, add the following to any of your python files to get py2exe to work.

{{{
from ctypes import util
try:
    from OpenGL.platform import win32
except AttributeError:
    pass
}}}

The following was not necessary for me.


Line 27: Line 41:
Tested with Python 2.6, py2exe version 0.6.9 and PyOpenGL version 3.0.0. Only tested the executable on a machine that had PyOpenGL already on it, going to test on a machine without it tomorrow. Tested with Python 2.6, py2exe version 0.6.9 and PyOpenGL version 3.0.0.

As of PyOpenGL 3.0, add the following to any of your python files to get py2exe to work.

from ctypes import util
try:
    from OpenGL.platform import win32
except AttributeError:
    pass

The following was not necessary for me.

PyOpenGL is a set of Python bindings for the OpenGL graphical rendering library. It has a page on how to compile with py2exe, but it is outdated. Here's how I made it work for me, although it is quite wasteful in space.

  • In your setup.py, exclude OpenGL although you have PyOpenGL installed. I needed to explicitly include ctypes and logging to make it work, but maybe that depends on what things you use. My setup.py:

    from distutils.core import setup
    import py2exe
    
    setup(windows=['opdracht.py'],
          options={
              "py2exe": {
                  "includes": ["ctypes", "logging"],
                  "excludes": ["OpenGL"],
                  }
              }
          )
  • At the top of your main Python file, add the current directory ('.') to your sys.path:

    import sys
    sys.path += ['.']
  • Run setup.py py2exe.

  • Copy the OpenGL folder from PYTHONDIR\Lib\site-packages to your new dist\ directory. I think it's in C:\Python26\Lib\site-packages by default. You can leave out any *.pyc and *.pyo files.

I think that's what did the trick for me, now . If you need funky stuff like TK, WGL, or OpenGLContext, maybe the original tutorial by PyOpenGL helps.

Tested with Python 2.6, py2exe version 0.6.9 and PyOpenGL version 3.0.0.

--- Bram Geron

PyOpenGL (last edited 2010-07-19 02:22:55 by MarkReed)