[PYTHON] Versuchen Sie PyOpenGL

Probieren Sie OpenGL mit Python unter modernen Windows aus.

Umgebung

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.

Installieren Sie PyOpenGL

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

Bestätigter Betrieb mit PyOpenGL-Demo

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.

Glut hinzufügen.

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.

Übergeben Sie die Python3-Unicode-Zeichenfolge an glutCreateWindow

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. teapots.png

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

Versuchen Sie PyOpenGL
Versuchen Sie Python
versuchen Sie es mit pysdl2
Versuchen Sie, libtaxii zu berühren
Versuchen Sie es mit Tkinter
Versuchen Sie es mit Docker-Py
Probieren Sie den Generator von numpy.random aus
Versuchen Sie es mit verteiltem Tensorfluss
Versuchen Sie es mit einem Ausstecher
Versuchen Sie es mit Geopandas
Versuchen Sie es mit Selen
Versuchen Sie es mit scipy
Python> try: / außer:
Versuchen Sie, Polynote zu installieren
Versuchen Sie es mit pandas.DataFrame
Versuchen Sie es mit Hinweisen
Versuchen Sie es mit Django-Swiftbrowser
Versuchen Sie es mit matplotlib
Versuchen Sie es mit tf.metrics
Versuchen Sie, Chainer-Gogh zu installieren
Versuchen Sie, Deepdream auszuführen
Versuchen Sie es mit PyODE
Versuchen Sie, Pyston 0.1 auszuführen
Versuchen Sie, PySide2 zu erstellen