pyOpenGLをpy2exeする
すんなりとはいかなかった。
インストール
http://www.xucker.jpn.org/pc/pythonexec.html
まず、こちらを参考にvcランタイムの問題をクリアする。
http://d.hatena.ne.jp/AMENOHI/20090202/1233575464
exeを実行するとpyOpenGLのエラーがでる。
$ ./dist/gui.exe Traceback (most recent call last): File "gui.py", line 9, in <module> from OpenGL.GL import * File "OpenGL\GL\__init__.pyc", line 2, in <module> File "OpenGL\raw\GL\__init__.pyc", line 6, in <module> File "OpenGL\raw\GL\constants.pyc", line 7, in <module> File "OpenGL\platform\__init__.pyc", line 36, in <module> File "OpenGL\platform\__init__.pyc", line 27, in _load File "OpenGL\plugins.pyc", line 14, in load File "OpenGL\plugins.pyc", line 28, in importByName ImportError: No module named win32
win32って何なのかというと以下のものであった。
C:\Python26\Lib\site-packages\OpenGL\platform\win32.py C:\Python26\Lib\site-packages\OpenGL\platform\win32.pyo
モジュールで言えば
OpenGL.platform.win32
以下のようにすればこれをpy2exeに含めてやることができた。
$ python setup.py py2exe --includes=OpenGL.platform.win32
これでwx.GLCanvasのpy2exe化に成功した。
たぶん、py2exeが判別できない方法でpyOpenGLがwin32をimportしているのだろうね。
しかし、20MBくらいの巨大な環境になってしまう。
$ ls -l dist\ -rw- 73728 2009-10-26 08:25 _ctypes.pyd -rw- 218112 2010-01-28 05:07 boost_python-vc90-mt-1_41.dll -rw- 71168 2009-10-26 08:25 bz2.pyd -rw- 237568 2010-01-26 19:15 glut32.dll -rwx 26112 2010-01-28 16:38 gui.exe* -rw- 4894515 2010-01-28 16:38 library.zip -rw- 408576 2010-01-28 16:12 opengl.pyd -rw- 2149888 2009-10-26 08:24 python26.dll -rw- 11776 2009-10-26 08:27 select.pyd -rw- 585728 2009-10-26 08:25 unicodedata.pyd -rwx 49664 2009-10-26 08:23 w9xpopen.exe* -rw- 467456 2009-05-14 20:11 wx._aui.pyd -rw- 966144 2009-05-14 20:09 wx._controls_.pyd -rw- 980992 2009-05-14 20:07 wx._core_.pyd -rw- 744960 2009-05-14 20:08 wx._gdi_.pyd -rw- 341504 2009-05-14 20:13 wx._gizmos.pyd -rw- 57856 2009-05-14 20:11 wx._glcanvas.pyd -rw- 675328 2009-05-14 20:09 wx._misc_.pyd -rw- 447488 2009-05-14 20:13 wx._stc.pyd -rw- 669696 2009-05-14 20:08 wx._windows_.pyd -rw- 122368 2009-05-14 19:52 wxbase28uh_net_vc.dll -rw- 1306112 2009-05-14 19:52 wxbase28uh_vc.dll -rw- 730112 2009-05-14 19:54 wxmsw28uh_adv_vc.dll -rw- 327680 2009-05-14 19:55 wxmsw28uh_aui_vc.dll -rw- 3168768 2009-05-14 19:54 wxmsw28uh_core_vc.dll -rw- 146432 2009-05-14 19:56 wxmsw28uh_gizmos_vc.dll -rw- 40960 2009-05-14 19:56 wxmsw28uh_gl_vc.dll -rw- 479744 2009-05-14 19:55 wxmsw28uh_html_vc.dll -rw- 534016 2009-05-14 19:57 wxmsw28uh_stc_vc.dll