py2exeがうまくいかないしよくわからなかった。
昨日インストールしたpyOpenGLでは
C:\Python26\Lib\site-packages配下にOpenGLフォルダが
無かった(py2exeするのにOpenGLフォルダの中のファイルをコピーする必要がありそうだし、昨日のインストールではOpenGLフォルダがどこにあるかわからなかった)ので
ココを参考に再度pyOpenGLを入れてみることにした。
サイト内に書かれているsetuptoolsについては昨日も書いた通り
すでに入っているので飛ばした。
ページ内のリンクからPyOpenGL-3.0を入手した。
zipだったので展開して展開したフォルダの中に移動して
python setup.py install
を実行した。
C:\Python26\Lib\site-packages配下にOpenGLフォルダができた。
py2exeで実行ファイルを作るのはココを参考にした。
実際の作業は以下の通り。
OpenGLを使ったソースファイル↓
sample3.py
-------------------------------
import sys
sys.path.insert( 0, '.' )
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
import sys
ESCAPE = '\033'
lastx = x = 30
lasty = y = 30
def initialize():
glClearDepth(1.0)
glEnable(GL_DEPTH_TEST)
glClearColor(0.0, 0.5, 0.0, 0.0)
glShadeModel(GL_SMOOTH)
glMatrixMode(GL_PROJECTION)
glFrustum(-0.5, 0.5, -0.5, 0.5, 1.0, 3.0)
glMatrixMode(GL_MODELVIEW)
glTranslatef(0.0, 0.0, -2.0)
glRotatef(y, 1.0, 0.0, 0.0)
glRotatef(x, 0.0, 1.0, 0.0)
glEnable(GL_LIGHTING)
glEnable(GL_LIGHT0)
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE)
glEnable(GL_COLOR_MATERIAL)
def mouseMotion(x, y):
global lastx, lasty
lastx = x
lasty = y
glutPostRedisplay()
def display():
global lastx, lasty
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT )
glPushMatrix()
glRotatef(lastx, 0.0, 1.0, 0.0)
glRotatef(lasty, 1.0, 0.0, 0.0)
glBegin(GL_QUADS)
glNormal3f( 0.0, 0.0, 1.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f(-0.5, 0.5, 0.5)
glVertex3f(-0.5,-0.5, 0.5)
glVertex3f( 0.5,-0.5, 0.5)
glNormal3f( 0.0, 0.0,-1.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f(-0.5, 0.5,-0.5)
glVertex3f( 0.5, 0.5,-0.5)
glVertex3f( 0.5,-0.5,-0.5)
glNormal3f( 0.0, 1.0, 0.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f( 0.5, 0.5,-0.5)
glVertex3f(-0.5, 0.5,-0.5)
glVertex3f(-0.5, 0.5, 0.5)
glNormal3f( 0.0,-1.0, 0.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f( 0.5,-0.5,-0.5)
glVertex3f( 0.5,-0.5, 0.5)
glVertex3f(-0.5,-0.5, 0.5)
glNormal3f( 1.0, 0.0, 0.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f( 0.5,-0.5, 0.5)
glVertex3f( 0.5,-0.5,-0.5)
glVertex3f( 0.5, 0.5,-0.5)
glNormal3f(-1.0, 0.0, 0.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f(-0.5,-0.5, 0.5)
glVertex3f(-0.5, 0.5, 0.5)
glVertex3f(-0.5, 0.5,-0.5)
glEnd()
glPopMatrix()
glutSwapBuffers()
def keyboard(*args):
if args[0] == ESCAPE:
sys.exit()
def reshape(w, h):
glViewport(0, 0, w, h)
def main():
glutInit(sys.argv)
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH )
glutInitWindowPosition( 100, 100 )
glutInitWindowSize( 500, 400 )
glutCreateWindow( sys.argv[0] )
glutDisplayFunc( display )
glutKeyboardFunc( keyboard )
glutReshapeFunc( reshape )
glutMotionFunc( mouseMotion )
initialize()
glutMainLoop()
print "Hit ESC key to quit."
main()
-------------------------------
py2exeで使用するsetup.pyは下記の通り。
----------------------------------
from distutils.core import setup
import py2exe
setup(windows=["sample3.py"],
options={"py2exe": {"includes": ["ctypes", "logging"],
"excludes": ["OpenGL"],
}
}
)
----------------------------------
実行はpython setup.py py2exe
下記のフォルダをpy2exeで作成されたdistフォルダにコピー
C:\Python26\Lib\site-packages\OpenGL
C:\Python26\Lib\ctypes
下記のフォルダ内のファイルのみ(Libフォルダ内のフォルダはいらない)も
distフォルダにコピー
C:\Python26\Lib
上記を毎回やるのは面倒なのでバッチファイルを作成して行う。
バッチファイルは下記の通り。
---------------------------------
rmdir /s build
rmdir /s dist
python setup.py py2exe
mkdir .\dist\OpenGL
xcopy C:\Python26\Lib\site-packages\OpenGL .\dist\OpenGL /e
mkdir .\dist\ctypes
xcopy C:\Python26\Lib\ctypes .\dist\ctypes /e
copy C:\Python26\Lib .\dist
pause
---------------------------------
作成されたdistファイルを他のマシン(windowsXP32bit)に持って行っても
動いた。
2011/11/18
2011/11/17
windows7(32bit)にpyOpenGLをインストール
ここを参考にした。
サイトの説明文はまるでlinuxでやっているようだがwindowsでもOK。
1.setuptoolsのインストール
パッケージインストールツール。windows pythonにはデフォルトでインストール
されていないのでインストールする必要がある。
PyOpenGLのインストールに必要。
インストール方法:
python-setuptoolsのセットアップファイルをダウンロード
#wget http://peak.telecommunity.com/dist/ez_setup.py
↑この部分だけlinuxでやった。
ダウンロードしたファイルをwindowsのコマンドプロンプトで
下記のように実行した。
python ez_setup.py
すでに入ってるよって感じのメッセージが出た。
py2exeか何かを入れるときに入れてたのかな。
2.glutのインストール
OpenGLを使用するためのライブラリ
glut-3.7.6-bin.zipをダウンロードして、解凍する。
↑これはファイル名で検索したら出てきたのでそれをダウンロードした。
zipを展開する。
*dllを
C:WINDOWS\systemへコピーする。
C:WINDOWS\system32へコピーする。
と書いてたがよくわからないので下記ファイルをコピーした。
glut.def
glut.h
glut32.dll
glut32.lib
3.PyOpenGLのインストール
PyOpenGL-3.0.0a6.tar.gzをダウンロードして展開をする。
↑これもファイル名で検索して出てきたやつをダウンロードした。
展開はlinuxにてtar xzvf PyOpenGL-3.0.0a6.tar.gzで行った。
windowsのコマンドプロンプトにて上記で展開したディレクトリに入り
下記コマンドを実行した。
cd PyOpenGL-3.0.0a6
python setup.py install
これでインストール完了。
ここにサンプルとかpy2exesampleもあるっぽい。
サンプルはなぜか動かなかった。py2exesampleは試してない。
インストール後、下記ファイルを作成じて実行してみた。
画面が出ればインストール成功と思われる。
実行コマンドはpython sample.pyでOK
ファイル名sample.py
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
import sys
ESCAPE = '\033'
lastx = x = 30
lasty = y = 30
def initialize():
glClearDepth(1.0)
glEnable(GL_DEPTH_TEST)
glClearColor(0.0, 0.5, 0.0, 0.0)
glShadeModel(GL_SMOOTH)
glMatrixMode(GL_PROJECTION)
glFrustum(-0.5, 0.5, -0.5, 0.5, 1.0, 3.0)
glMatrixMode(GL_MODELVIEW)
glTranslatef(0.0, 0.0, -2.0)
glRotatef(y, 1.0, 0.0, 0.0)
glRotatef(x, 0.0, 1.0, 0.0)
glEnable(GL_LIGHTING)
glEnable(GL_LIGHT0)
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE)
glEnable(GL_COLOR_MATERIAL)
def mouseMotion(x, y):
global lastx, lasty
lastx = x
lasty = y
glutPostRedisplay()
def display():
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT )
glPushMatrix()
glBegin(GL_QUADS)
glNormal3f( 0.0, 0.0, 1.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f(-0.5, 0.5, 0.5)
glVertex3f(-0.5,-0.5, 0.5)
glVertex3f( 0.5,-0.5, 0.5)
glNormal3f( 0.0, 0.0,-1.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f(-0.5, 0.5,-0.5)
glVertex3f( 0.5, 0.5,-0.5)
glVertex3f( 0.5,-0.5,-0.5)
glNormal3f( 0.0, 1.0, 0.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f( 0.5, 0.5,-0.5)
glVertex3f(-0.5, 0.5,-0.5)
glVertex3f(-0.5, 0.5, 0.5)
glNormal3f( 0.0,-1.0, 0.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f( 0.5,-0.5,-0.5)
glVertex3f( 0.5,-0.5, 0.5)
glVertex3f(-0.5,-0.5, 0.5)
glNormal3f( 1.0, 0.0, 0.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f( 0.5,-0.5, 0.5)
glVertex3f( 0.5,-0.5,-0.5)
glVertex3f( 0.5, 0.5,-0.5)
glNormal3f(-1.0, 0.0, 0.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f(-0.5,-0.5, 0.5)
glVertex3f(-0.5, 0.5, 0.5)
glVertex3f(-0.5, 0.5,-0.5)
glEnd()
glPopMatrix()
glutSwapBuffers()
def keyboard(*args):
if args[0] == ESCAPE:
sys.exit()
def reshape(w, h):
pass
def main():
glutInit(sys.argv)
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH )
glutInitWindowPosition( 100, 100 )
glutInitWindowSize( 500, 400 )
glutCreateWindow( sys.argv[0] )
glutDisplayFunc( display )
glutKeyboardFunc( keyboard )
glutReshapeFunc( reshape )
glutMotionFunc( mouseMotion )
initialize()
glutMainLoop()
print "Hit ESC key to quit."
main()
サイトの説明文はまるでlinuxでやっているようだがwindowsでもOK。
1.setuptoolsのインストール
パッケージインストールツール。windows pythonにはデフォルトでインストール
されていないのでインストールする必要がある。
PyOpenGLのインストールに必要。
インストール方法:
python-setuptoolsのセットアップファイルをダウンロード
#wget http://peak.telecommunity.com/dist/ez_setup.py
↑この部分だけlinuxでやった。
ダウンロードしたファイルをwindowsのコマンドプロンプトで
下記のように実行した。
python ez_setup.py
すでに入ってるよって感じのメッセージが出た。
py2exeか何かを入れるときに入れてたのかな。
2.glutのインストール
OpenGLを使用するためのライブラリ
glut-3.7.6-bin.zipをダウンロードして、解凍する。
↑これはファイル名で検索したら出てきたのでそれをダウンロードした。
zipを展開する。
*dllを
C:WINDOWS\systemへコピーする。
C:WINDOWS\system32へコピーする。
と書いてたがよくわからないので下記ファイルをコピーした。
glut.def
glut.h
glut32.dll
glut32.lib
3.PyOpenGLのインストール
PyOpenGL-3.0.0a6.tar.gzをダウンロードして展開をする。
↑これもファイル名で検索して出てきたやつをダウンロードした。
展開はlinuxにてtar xzvf PyOpenGL-3.0.0a6.tar.gzで行った。
windowsのコマンドプロンプトにて上記で展開したディレクトリに入り
下記コマンドを実行した。
cd PyOpenGL-3.0.0a6
python setup.py install
これでインストール完了。
ここにサンプルとかpy2exesampleもあるっぽい。
サンプルはなぜか動かなかった。py2exesampleは試してない。
インストール後、下記ファイルを作成じて実行してみた。
画面が出ればインストール成功と思われる。
実行コマンドはpython sample.pyでOK
ファイル名sample.py
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
import sys
ESCAPE = '\033'
lastx = x = 30
lasty = y = 30
def initialize():
glClearDepth(1.0)
glEnable(GL_DEPTH_TEST)
glClearColor(0.0, 0.5, 0.0, 0.0)
glShadeModel(GL_SMOOTH)
glMatrixMode(GL_PROJECTION)
glFrustum(-0.5, 0.5, -0.5, 0.5, 1.0, 3.0)
glMatrixMode(GL_MODELVIEW)
glTranslatef(0.0, 0.0, -2.0)
glRotatef(y, 1.0, 0.0, 0.0)
glRotatef(x, 0.0, 1.0, 0.0)
glEnable(GL_LIGHTING)
glEnable(GL_LIGHT0)
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE)
glEnable(GL_COLOR_MATERIAL)
def mouseMotion(x, y):
global lastx, lasty
lastx = x
lasty = y
glutPostRedisplay()
def display():
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT )
glPushMatrix()
glBegin(GL_QUADS)
glNormal3f( 0.0, 0.0, 1.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f(-0.5, 0.5, 0.5)
glVertex3f(-0.5,-0.5, 0.5)
glVertex3f( 0.5,-0.5, 0.5)
glNormal3f( 0.0, 0.0,-1.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f(-0.5, 0.5,-0.5)
glVertex3f( 0.5, 0.5,-0.5)
glVertex3f( 0.5,-0.5,-0.5)
glNormal3f( 0.0, 1.0, 0.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f( 0.5, 0.5,-0.5)
glVertex3f(-0.5, 0.5,-0.5)
glVertex3f(-0.5, 0.5, 0.5)
glNormal3f( 0.0,-1.0, 0.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f( 0.5,-0.5,-0.5)
glVertex3f( 0.5,-0.5, 0.5)
glVertex3f(-0.5,-0.5, 0.5)
glNormal3f( 1.0, 0.0, 0.0)
glVertex3f( 0.5, 0.5, 0.5)
glVertex3f( 0.5,-0.5, 0.5)
glVertex3f( 0.5,-0.5,-0.5)
glVertex3f( 0.5, 0.5,-0.5)
glNormal3f(-1.0, 0.0, 0.0)
glVertex3f(-0.5,-0.5,-0.5)
glVertex3f(-0.5,-0.5, 0.5)
glVertex3f(-0.5, 0.5, 0.5)
glVertex3f(-0.5, 0.5,-0.5)
glEnd()
glPopMatrix()
glutSwapBuffers()
def keyboard(*args):
if args[0] == ESCAPE:
sys.exit()
def reshape(w, h):
pass
def main():
glutInit(sys.argv)
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH )
glutInitWindowPosition( 100, 100 )
glutInitWindowSize( 500, 400 )
glutCreateWindow( sys.argv[0] )
glutDisplayFunc( display )
glutKeyboardFunc( keyboard )
glutReshapeFunc( reshape )
glutMotionFunc( mouseMotion )
initialize()
glutMainLoop()
print "Hit ESC key to quit."
main()
登録:
投稿 (Atom)