2024/03/02(土) [n年前の日記]
#1 [python] Pythonの非公式モジュール配布ページが消滅していたと思ったら復活してた
Windows上でPythonを使う際、非公式版モジュールバイナリパッケージ(.whl)を配布してくれているページで、モジュールを入手してインストールする場面がちょくちょくあったのだけど。
例えば PyOpenGL などは、pip install PyOpenGL でインストールすると freeglut*.dll が同梱されてなかったりするので、自分の場合は、freeglut*.dll が同梱されてる非公式版 .whl を入手して使っていた。 *1
しかし、その非公式版を配布してくれていたサイトが消滅していることに今頃気づいた次第。
_Archived: Python Extension Packages for Windows - Christoph Gohlke
困った…。PyOpenGL で GLUT/freeglut を使おうと思ったら、別途インストールしないといけないのか…。参ったな…。
と、ここまで書いてから確認してみたら、復活していた。何があったんだ…。
例えば PyOpenGL などは、pip install PyOpenGL でインストールすると freeglut*.dll が同梱されてなかったりするので、自分の場合は、freeglut*.dll が同梱されてる非公式版 .whl を入手して使っていた。 *1
しかし、その非公式版を配布してくれていたサイトが消滅していることに今頃気づいた次第。
_Archived: Python Extension Packages for Windows - Christoph Gohlke
困った…。PyOpenGL で GLUT/freeglut を使おうと思ったら、別途インストールしないといけないのか…。参ったな…。
と、ここまで書いてから確認してみたら、復活していた。何があったんだ…。
◎ 2022年に消える予定があったらしい :
ググっていたら、本来、件のページは、2022年頃に閉鎖する予定だったらしい。
_Christoph Gohlke's Windows Wheels site is shutting down by the end of the month : r/Python
_installation - What to do when Gohlke's python wheel service shuts down? - Stack Overflow
ミラーサイトが建てられた時もあったけど、そちらのサイトも今現在は404。
_Mirror of Christoph Gohlke's Windows Binaries : r/Python
_Christoph Gohlke's Windows Wheels site is shutting down by the end of the month : r/Python
_installation - What to do when Gohlke's python wheel service shuts down? - Stack Overflow
ミラーサイトが建てられた時もあったけど、そちらのサイトも今現在は404。
_Mirror of Christoph Gohlke's Windows Binaries : r/Python
◎ バックアップを取っておいた :
とりあえず当面は PyOpenGL の .whl だけでも入手できる状態にしておきたい。一通り入手してGoogleドライブに置いておくことにした。
_PyOpenGL - Google ドライブ
前述のページから入手できるならそれでいいのだけど、万が一入手できなかった場合は上記の場所から、ということで…。
_PyOpenGL - Google ドライブ
前述のページから入手できるならそれでいいのだけど、万が一入手できなかった場合は上記の場所から、ということで…。
◎ 公式版 PyOpenGL でもどうにかできるかもしれない :
以前、非公式版 PyOpenGL に同梱されてる freeglut*.dll の場所を調べたことがあるけれど。
_mieki256's diary - PyOpenGLが使うfreeglut.dllの場所を調べた
つまり、pip install PyOpenGL で公式版をインストールした後、以下の場所に freeglut.dll をコピーして…。
以下のファイルを修正すればどうにかなるのかもしれない。
_mieki256's diary - PyOpenGLが使うfreeglut.dllの場所を調べた
つまり、pip install PyOpenGL で公式版をインストールした後、以下の場所に freeglut.dll をコピーして…。
(Python3インストールフォルダ)\Lib\site-packages\OpenGL\DLLS\ or (Python3インストールフォルダ)\
以下のファイルを修正すればどうにかなるのかもしれない。
(Python3インストールフォルダ)\Lib\site-packages\OpenGL\platform\win32.py
for possible in ('freeglut%s.%s'%(size,vc,), 'glut%s.%s'%(size,vc,)): # ↓ for possible in ('freeglut', 'freeglut%s.%s' % (size,vc), 'glut%s.%s' % (size,vc)):
◎ glfwという選択肢もある :
Python を使って OpenGL を学習するのであれば、GLFW を使ってしまう手もアリかなと…。
_glfw - PyPI
glfw (pyglfw) なら、公式版の Windows用パッケージの中に glfw3.dll が同梱されてるので、.dll の導入で悩むことなく、すぐに使える。GLUT/freeglut より新しいツールキットな点もイイ感じ。
ただ、Python + PyOpenGL + freeglut を使ったサンプルを動かしたい場合は、やはり PyOpenGL + freeglut が必要になるわけで…。
_glfw - PyPI
glfw (pyglfw) なら、公式版の Windows用パッケージの中に glfw3.dll が同梱されてるので、.dll の導入で悩むことなく、すぐに使える。GLUT/freeglut より新しいツールキットな点もイイ感じ。
ただ、Python + PyOpenGL + freeglut を使ったサンプルを動かしたい場合は、やはり PyOpenGL + freeglut が必要になるわけで…。
*1: 正確には、公式版にも freeglut*.dll はいくつか同梱されているのだけど、
_どうやらvc9,vc10,vc14等の古いものしか入ってなくて…。
インストールした PyOpenGL のバージョン(PyOpenGLというよりPythonをビルドしたVisual C++のバージョン?)と一致する freeglut*.dll が何故か同梱されていないという…。
[ ツッコむ ]
以上です。