【Python】PyOpenGLのインストール方法を解説

【Python】PyOpenGLのインストール方法を解説 プログラミング

「PyOpenGLのインストールができない!!」
「PyOpenGLが動かない・・・」

このような場合は、この記事をご覧ください。
PyOpenGLが動くまでを説明します。

本記事の内容

  • PyOpenGLとは?
  • PyOpenGLのシステム要件
  • PyOpenGLのインストール
  • PyOpenGLの動作確認

それでは、上記に沿って解説していきます。

PyOpenGLとは?

PyOpenGL公式サイト
http://pyopengl.sourceforge.net/

PyOpenGLは、OpenGLとその関連APIに対するPythonバインディングです。
プログラムからOpenGLを気軽に触る場合には、最適な選択肢となります。

しかし、PyOpenGLを動かすまでがちょっと面倒です。
公式サイトを見ればわかりますが、決して親切とは言えません。

また、Googleで検索しても情報が錯綜しています。
今時のゲームのように、いろいろなルートがあります。

その中でも、比較的わかりやすいルートを見つけました。
今回は、そのルートをもとに説明していきます。

以上、PyOpenGLについての説明でした。
次は、PyOpenGLのシステム要件を確認します。

PyOpenGLのシステム要件

現時点(2021年7月)でのPyOpenGLの最新バージョンは、3.1.5となります。
この最新バージョンは、2020年1月4日にリリースされています。

PyOpenGLを動かすには、次の3つがポイントです。

  • OS
  • Python
  • freeglut

それぞれを下記で説明します。

OS

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

Python

サポート対象となるのは以下のバージョンです。

  • Python 2.7(推奨)
  • Python 3.3以降

いまどき、Python 2系を推奨するのは微妙ですが・・・
おそらく、PyOpenGLの開発者がPython 2.7で開発しているのでしょう。

ただ、Python 3.3以降でもOKと言っているので一安心です。
Python 3系なら、基本的には問題がないということでしょう。

ちなみに、私は次のPythonで検証しています。

>python -V
Python 3.9.6

現時点(2021年7月)では、Pythonの最新バージョンとなります。
Python 3.9.6へのアップグレードは、次の記事でまとめています。

freeglut

GLUTは、OpenGL Utility Toolkitの略称になります。
本来は、このGLUTを使うの基本のようです。

しかし、GLUTは1998年以降は更新されていません。
さすがに、こんなに古いモノは使えません。

その代わりに、GLUTと互換性を持つfreeglutというモノが利用されています。

freeglut
http://freeglut.sourceforge.net/

freeglutは、上記公式でソースをダウンロードできます。
自分でビルド(C言語)したい方は、頑張ってやってみてください。

頑張りたくない人は、次のページからdllをダウンロードしましょう。
https://www.transmissionzero.co.uk/software/freeglut-devel/

「Download freeglut 3.0.0 for MSVC」をクリックすると、ダウンロードが開始します。
ダウンロードが完了すると、「freeglut-MSVC-3.0.0-2.mp.zip」が保存されています。

このファイルを解凍します。

上記の場所に、「freeglut.dll」があるはずです。
なお、Windowsマシンが64bitであることを前提に話を進めています。

そして、この「freeglut.dll」を「C:\Windows\System32」にコピーします。
これでfreeglutのインストールは完了です。

まとめ

freeglutが、最大のポイントでしょうね。
それ以外、それほど大きな問題にはなりません。

以上、PyOpenGLのシステム要件について説明しました。
次は、PyOpenGLをインストールしていきます。

PyOpenGLのインストール

まずは、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.1.3
setuptools 57.1.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、PyOpenGLのインストールです。
PyOpenGLのインストールは、以下のコマンドとなります。

pip install PyOpenGL PyOpenGL_accelerate

なお、PyOpenGL_accelerateはほぼ必須のようです。
PyOpenGLと一緒にインストールすることが、推奨されています。

インストールは、しばらく時間がかかります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package             Version
------------------- -------
pip                 21.1.3
PyOpenGL            3.1.5
PyOpenGL-accelerate 3.1.5
setuptools          57.1.0

依存するパッケージは、ありません。
そのため、既存環境に対してPyOpenGLの導入は容易と言えます。

以上、PyOpenGLのインストールについて説明しました。
次は、PyOpenGLの動作確認を行います

PyOpenGLの動作確認

動作確認の前にやらないといけないことがあります。
PyOpenGLの以下ファイルを変更します。

\Lib\site-packages\OpenGL\platform\win32.py

変更箇所は、42行目。

現状のままだと、次のエラーが出てしまいます。

OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) before calling

そこで、42行目を次のように変更します。

もしくは、次のように変更してもOK。

for possible in ('freeglut','glut%s.%s'%(size,vc,)):

これで、glutInit関数が認識されました。
では、以下のコードを実行してみましょう。

from OpenGL.GLUT import *
from OpenGL.GL import *

def display():
    glClear(GL_COLOR_BUFFER_BIT)

    glColor3f(1.0, 1.0, 1.0)
    glBegin(GL_POLYGON)
    glVertex3f(0.25, 0.75, 0.0)
    glVertex3f(0.25, 0.25, 0.0)
    glVertex3f(0.75, 0.25, 0.0)
    glVertex3f(0.75, 0.75, 0.0)
    glEnd()

    glFlush()

if __name__ == '__main__':
    glutInit(sys.argv)
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
    glutInitWindowSize(300, 300)
    glutCreateWindow(b"test")
    glutDisplayFunc(display)
    glutMainLoop()

上記コードを実行します。
問題なければ、次の画面が表示されます。

上記画面を確認できれば、PyOpenGLの動作確認は問題ありません。

以上、PyOpenGLの動作確認を説明しました。

タイトルとURLをコピーしました