Probieren Sie OpenGL mit Python unter modernen Windows aus.
Ich habe unter Windows 10 (64bit) gearbeitet.
Python ist
https://www.continuum.io/downloads
Wählen Sie Python 3.5 (64 Bit) aus der in verteilten Anaconda-Distribution aus. Bei Anaconda sind Numpy usw. von Anfang an enthalten, daher denke ich, dass dies gut für Windows ist.
Zuerst habe ich wie unten gepfeift,
> C:\Anaconda3\Scripts\pip.exe install PyOpenGL PyOpenGL-Demo
Die Anaconda-Distribution scheint dies zu tun.
> C:\Anaconda3\Scripts\conda.exe install pyopengl
Laden Sie das Archiv von herunter und entpacken Sie es.
> cd PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo> dir
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2016/03/19 2:27 da
d----- 2016/03/19 2:27 dek
d----- 2016/03/19 2:27 GLE
d----- 2016/03/19 2:27 GLUT
d----- 2016/03/19 2:27 NeHe
d----- 2016/03/19 2:27 proesch
d----- 2016/03/19 2:27 redbook
d----- 2016/03/19 2:27 tom
-a---- 2008/12/08 12:25 0 readme.txt
-a---- 2008/12/08 12:25 0 __init__.py
Lass uns zu NeHe gehen.
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo> cd NeHe
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\Nehe> C:\Anaconda3\python.exe .\lesson1.py
File ".\lesson1.py", line 141
print "Hit ESC key to quit."
^
SyntaxError: Missing parentheses in call to 'print'
Oh, Python2-Spezifikationen. Aber,
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\Nehe> C:\Anaconda3\Scripts\2to3.exe -w .
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\Nehe> C:\Anaconda3\python.exe .\lesson1.py
Traceback (most recent call last):
File ".\lesson1.py", line 8, in <module>
__version__ = string.split('$Revision: 1.1.1.1 $')[1]
AttributeError: module 'string' has no attribute 'split'
Auskommentieren
#__version__ = string.split('$Revision: 1.1.1.1 $')[1]
#__date__ = string.join(string.split('$Date: 2007/02/15 19:25:19 $')[1:3], ' ')
#__author__ = 'Tarn Weisner Burton <[email protected]>'
nochmal.
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\Nehe> C:\Anaconda3\python.exe .\lesson1.py
Hit ESC key to quit.
Traceback (most recent call last):
File ".\lesson1.py", line 142, in <module>
main()
File ".\lesson1.py", line 97, in main
glutInit(sys.argv)
File "C:\Anaconda3\lib\site-packages\OpenGL\GLUT\special.py", line 333, in glutInit
_base_glutInit( ctypes.byref(count), holder )
File "C:\Anaconda3\lib\site-packages\OpenGL\platform\baseplatform.py", line 407, in __call__
self.__name__, self.__name__,
OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) before calling
Es gibt keine Überflutung.
https://charmie11.wordpress.com/2015/09/28/pyopengl-installation-using-anaconda/
Das war's.
http://ktm11.eng.shizuoka.ac.jp/lesson/modeling.html Ich habe glut32.dll (64bit) von und kopierte es nach C: \ Windows \ System32.
Der Fehler bleibt gleich. Ich folgte dem Code.
# C:\Anaconda3\Lib\site-packages\OpenGL\platform\win32.py
def GLUT( self ):
for possible in ('freeglut%s'%(size,),'freeglut', 'glut%s'%(size,)):
# Prefer FreeGLUT if the user has installed it, fallback to the included
# GLUT if it is installed
try:
return ctypesloader.loadLibrary(
ctypes.windll, possible, mode = ctypes.RTLD_GLOBAL
)
except WindowsError as err:
pass
return None
Ich suche eine DLL, aber ich suche nach glut64. Ich habe es in C: \ Windows \ System32 \ glut64.dll eingefügt. nochmal.
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\Nehe> C:\Anaconda3\python.exe .\lesson1.py
Hit ESC key to quit.
Traceback (most recent call last):
File ".\lesson1.py", line 142, in <module>
main()
File ".\lesson1.py", line 115, in main
window = glutCreateWindow("Jeff Molofee's GL Code Tutorial ... NeHe '99")
File "C:\Anaconda3\lib\site-packages\OpenGL\GLUT\special.py", line 73, in glutCreateWindow
return __glutCreateWindowWithExit(title, _exitfunc)
ctypes.ArgumentError: argument 1: <class 'TypeError'>: wrong type
Der Fehler hat sich geändert.
115
window = glutCreateWindow(b"Jeff Molofee's GL Code Tutorial ... NeHe '99")
Fügen Sie b hinzu, um eine Bytezeichenfolge zu erstellen. Ich bestand. Ein schwarzes Fenster kam heraus.
Es gab eine Probe der Teekanne, also ss.
Die Überarbeitung ist die gleiche wie bei NeHe. Diese Methode ist ebenfalls möglich.
glutCreateWindow(sys.argv[0].encode('ascii'))
Es war nach langer Zeit PyOpenGL, aber die Umgebung wurde vorerst erstellt. Das nächste Mal werde ich mein glglue (unfreundlich und ich weiß nicht, wie ich es verwenden soll) für Python3 und dann das Verfahren für Shader und VertexBuffer beibehalten. Ich habe vor zu überprüfen.
Recommended Posts