環境構築手順を更新しました。(2019.2.20)
Pythonに興味津々な僕は日々思いついたことに手を出しています。フレームワークのDjangoやFlaskもそう。
ある日はふと「PythonでOpenGLって使えるのかな?」と思って調べてみたらある!本当にPythonはライブラリが豊富なんですね。
というわけで、PyOpenGLを使ってみて僕が学んだことをまとめます。結果としては動きはしましたが、「?」な部分もあるという状態です。
開発環境
- OS1:macOS Sierra 10.12.3
- OS2:Ubuntu 16.04.2 LTS on Parallels Desktop
- Anaconda Python 3.6 version
- PyOpenGL 3.1.0
PyOpenGLのインストール
$ pip install PyOpenGL PyOpenGL_accelerate $ pip install PyOpenGL-Demo ※デモファイルをインストールしたい場合
なお、デモファイルの動作を確認する前にコピーさせていただいたソースがあり、動作確認をしたときに謎なことが。
参考:pyOpenGLを使って分子動力学を可視化 – Python in the box
macOSで動作確認
謎の赤線
macOSのVisual Studio Codeで赤ラインだらけ。flake8やpylintが検知したエラーです。ひーーーって叫びたくなります。
でも実際には動くんですよ。
「なんで?エラー出てるのに動くの?そういうもんなの?それでいいの?なんでいいの?」ですよ。
加えて、プロセスを止めるためにctrl+cしたら、Terminalにたぶん良くはない状況が映し出されてる。
ここまでで気づいたこと
- 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で使うためにどうこうするではなくて、今の僕では結果としてよくわからずのまま試合終了です。
とはいえ、このままスッキリしないままでいるのもいやなので、本家のデモであるPyOpenGL-Demoを動かしてみることにしました。
ところが、PyOpenGLはPython2系で書かれているようで動かないというね。ちくちょー!
諦めきれない僕は次に、Python2系のソースコードを3系にコンバートしてくれる「2to3」というツールをPyOpenGLにかけてみました。
さぁどうだ!?
ダメだー!!
・・・というところで力尽きました。スッキリできなかった。
おわりに
PyOpenGLを使ってみようとして戦った数時間の軌跡をまとめるとこちら。
- まだまだPython2系で動くライブラリが豊富という状況なんですねチクショウめ!
- Anacondaのpipでインストールしたパッケージは全てAnaconda配下にまとめられて分かりやすい。
- pipには2系と3系がある。
- pipコマンドのオプション。
- ついでにbrewコマンドのオプション。(なんでこの流れになったのか思い出せない)
- 2to3は良いんだか悪いんだか判断できない。
- GLUTというOpenGLを各環境で動かすためのなにがしがある。
- デモは動かせなかったけど、そのためにとった行動の一つ一つが僕には楽しい、ということ。
2系と3系の差にはしてやられましたが、僕の中で何も進んでいないかというとそうでもないんですよ。
デイル・ドーテン著「仕事は楽しいかね?」に登場するすごいおじさん、マックス・エルモアが言っています。
『試してみるところに失敗はない』
やることに意味があります。たとえそれがダメだったとしても、それで元いた位置に戻るかと言えばそうじゃないんです。
告知:Pythonもくもく会 in Knower(s)
スッキリしなかった僕がスッキリさせるためにやる(だけが理由ではありませんが笑)「Pythonもくもく会」を松本市のコワーキングスペースKnower(s)で開催!
【長野・松本藩】第3回 Pythonもくもく会 – connpass
- 日時:2017年3月26日(日)14:00〜17:00
- 場所:長野県松本市のコワーキングスペースKnower(s)
- 参加費用:500円
- 持ち物:PC、書籍など各自の勉強に必要なもの
一緒にもくもくすることで刺激になります!ご参加お待ちしています!