PythonのOpenGLライブラリ「PyOpenGL」はPython3系では動かないのね

Pythonに興味津々な僕は日々思いついたことに手を出しています。フレームワークのDjangoFlaskもそう。

この日はふと「PythonでOpenGLって使えるのかな?」と思って調べてみたら「やっぱライブラリあるわ〜」ってね。本当にPythonはライブラリが豊富なんですね。

というわけで、PyOpenGLを使ってみて僕が学んだことをまとめます。アウトプットは最大の勉強です。

 

 
スポンサーリンク

 

環境

PyOpenGLのインストール

pip install PyOpenGL PyOpenGL_accelerate

 

デモファイルもインストールしたければ

 

pip install PyOpenGL-Demo

 

なお、デモファイルの動作を確認する前にコピーさせていただいたソースがあります。

▶︎参考:pyOpenGLを使って分子動力学を可視化 – Python in the box

 

その動作確認をしたときに謎が・・・。

 

R0000984

 

動作確認

macOSでやってみる

Visual Studio Codeでは赤ラインだらけ。flake8やpylintが検知したエラーです。ひーーーって叫びたくなります。でも内心「あ、やっぱりね、そんな気はしたんだよ」という静観した僕もいました。

 

20170320a-1

 

でも、実際には動くんですよ。

 

20170320a-2

 

「なんで?エラー出てるのに動くの?そういうもんなの?それでいいの?なんでいいの?」ですよ。

加えて、プロセスを止めるためにctrl+cしたら、Terminalにたぶん良くはない状況が映し出されてる。

 

20170320a-3

 

ここまでで気づいたこと

  • PyOpenGLは「pip3」でインストールすべきだったのか?(Macには2.6/2.7が入っているからpipと入力しただけでは2系として動いているとの情報あり)
  • ではpip3ってどうやってインストールするの?
  • もしかして2to3でpyOpenGLをコンバートする必要があるの?

 

よくよく考えてみると、pipはPython3系のAnacondaに組み込まれています。「conda list」と入力すると出てきますし、「python -V」や「which python」と入力してもAnacondaのそれを指し示します。

ということは、pipと入力しても2系で動くとは考えにくい。

Ubuntuでやってみる

次に仮想環境内のUbuntuでも同じことをやってみました。こっちならどうなるんだろう、という疑問からです。すると・・・

「GULTがない!」

と怒られる。

ナニソレ?

GLUTとはOpenGLを使う上でOSのなにがしを整えるものらしい。JavaのVMみたいなものですかね。調べてみたらfreeglut3を発見したので、それをインストールすることに。

 

sudo apt-get install freeglut3 freeglut3-dev

 

結果、無事に動いたうえにVisual Studio Codeの赤ラインが綺麗さっぱりなくなった!スッキリ!

ここまででわかったこと

「macOSでもGULTを整えればよいのではないか?」ということ。

早速以下を参考に調べてみましたがPythonで使うためにどうこうするではなくて、今の僕では結果としてよくわからずのまま試合終了です。

▶︎参考:GLUTによる「手抜き」OpenGL入門

 

とはいえ、このままスッキリしないままでいるのもいやなので、本家のデモであるPyOpenGL-Demoを動かしてみることにしました。やっぱりエラーなく動いているところが見たいですから。

ところが、PyOpenGLはPython2系で書かれているようで動かないというね・・・。ちくちょー!

諦めきれない僕は次に、Python2系のソースコードを3系にコンバートしてくれる「2to3」というツールをPyOpenGLにかけてみました。

さぁどうだ!?

ダメだー!!

・・・というところで力尽きました。スッキリできなかった。

 

R0000985

 

おわりに

PyOpenGLを使ってみようとして戦った数時間の軌跡をまとめるとこちら。

  1. よく言われているように、まだまだPython2系で動くライブラリが豊富という状況なんですねチクショウめ!
  2. Anacondaのpipでインストールしたパッケージは全てAnaconda配下にまとめられて分かりやすい。
  3. pipには2系と3系がある。
  4. pipコマンドのオプション。
  5. ついでにbrewコマンドのオプション。(なんでこの流れになったのか思い出せない)
  6. 2to3は良いんだか悪いんだか判断できない。
  7. GLUTというOpenGLを各環境で動かすためのなにがしがある。
  8. デモは動かせなかったけど、そのためにとった行動の一つ一つが僕には楽しい、ということ。

 

R0000986

 

2系と3系の差については身に染みましたが、何も進んでいないかというとそうでもないんですよ。

デイル・ドーテン著「仕事は楽しいかね?」に登場するすごいおじさん、マックス・エルモアが言っています。

 

『試してみるところに失敗はない』

 

やることに意味があります。たとえそれがダメだったとしても、それで元いた位置に戻るかと言えばそうじゃないですよね?そう、進んでいるんです。

後日譚(PyOpenGLが使えるようになりました!)

 

告知!

 

スッキリしなかった僕がスッキリさせるためにやる(だけが理由ではありませんが笑)「Pythonもくもく会」を松本市のコワーキングスペースKnower(s)で開催!

▶︎【長野・松本藩】第3回 Pythonもくもく会 – connpass

  • 日時:2017年3月26日(日)14:00〜17:00
  • 場所:長野県松本市のコワーキングスペースKnower(s)
  • 参加費用:500円
  • 持ち物:PC、書籍など各自の勉強に必要なもの

一緒にもくもくすることで刺激になります!ご参加お待ちしています!

書籍紹介

 

★ あなたのステキをそっとすくい撮ります ★

いまBlogやSNS、紙媒体などで発信しているけれど、

  • もっと自然体な自分を見せて、お客さんに安心を届けたい!
  • 顔写真を公開するのは恥ずかしいけど、勇気を出して公開したい!
  • 実は撮ってもらいたかったんです!

というみなさんの撮影を僕にやらせてもらえませんか。あなた自身がまだ気付いていない「あなたのステキ」を僕が撮ります。

★ 出張撮影、承ります ★

僕の活動拠点は長野県松本市と神奈川県横浜市。

毎月上旬は松本、下旬は横浜にいます。中信地方や関東圏内の撮影でしたらのその期間にお声がけくださいね。もちろん、他にも出張撮影します。

今は京都や広島(竹原や尾道)に行きたい。そちら在住の撮影されたいという方いませんか〜?

★ 詳しくはこちらからどうぞ ★

この記事を書いた人

花村貴史 / Takashi Q. Hanamura
花村貴史 / Takashi Q. Hanamura<空気感フォトグラファー>
「”自分の好き”を大切にしよう」と思いきって大好きな信州に移住したフォトグラファー。その人/その場の空気感をそっとすくい撮る写真が好評。

2017年はプログラミングやCGにも手を出し、「写真」「エンジニア」「芸術」「心理」、それぞれの分野を楽しんでいきます。

詳しいプロフィールはこちらへGo!!

この記事が気に入ったら
いいね ! してくださいね。

Twitter で