プラグインをインポートする際に、モジュールOpenGLがないというエラーが出てしまう

658 views
Skip to first unread message

やま

unread,
Jan 30, 2024, 2:13:38 AM1/30/24
to QGIS初心者質問グループ
プラグインをインポートする際に、

classFactory()メソッドの呼び出し時にエラーが発生したためプラグインを読み込めませんでした。

ModuleNotFoundError: No module named 'OpenGL'
という記載が出てきます。

ネットで調べてみて、pyopenglをpythonモジュールとしてダウンロードする必要があるということで、ダウンロードしてみました。
スクリーンショット 2024-01-30 16.11.43.png

しかし、同様のエラーが出てしまいます。
openglがインポートできていないのでしょうか。

パソコンが得意ではないため、当たり前のことかもしれませんが、教えていただけると幸いです。

takuma ohmiya

unread,
Jan 30, 2024, 8:58:44 PM1/30/24
to QGIS初心者質問グループ
もう少し何をしたか、OS等の環境はどうかを詳しく教えていただけると誰か教えてくれるかもしれませんが、
自分がハマった状況から勝手に想像してお答えします。

QGISから呼び出して動かすpyhonモジュールは、
通常の設定ではQGIS関係のフォルダ内にあるpyhonからしか呼び出せません。
乱暴な例えですがMS-officeが二つ個別にインストールされていてお互いにEXCELが入っていたり、
ACCESSが入っていなかったりする状況です。

スクリーンショットを見るに、OS側からインストールしたpyhon(pip)に対してPyOpenGLをインストールしたように見えます。
例えばmacOS版QGISの場合、/Applications/QGIS.app/Contents/MacOS/bin/にあるpythonにPyOpenGLをインストールする必要があります。

このリンクの内容は試しましたか?

2024年1月30日火曜日 16:13:38 UTC+9 kosuk...@gmail.com:

やま

unread,
Jan 31, 2024, 1:28:01 AM1/31/24
to QGIS初心者質問グループ
ご返信いただきまして有難うございます。

下記、環境です。
OS   : macOS Monterey
GIS  :3.34.3-Prizren

仰る通り、osからインストールしたpipにインストールしておりました。
有難うございます。

送っていただいたサイトをもとに進めていこうとしました。
いくつか引っ掛かっておりまして、質問がございます、初歩的で申し訳ございません。

私の理解では、ターミナルでQGIS内のpythonディレクトリまで移動し、こちらでpip経由でopenGLをインストールするものだと認識しました。

1. しかし、写真1枚目のようにpythonコンソール内でpythonのパスを入手したところ、binではなくQGISと書かれています。これはpythonの場所を教えてくれるコマンドではないのでしょうか。
2024-01-31 15.17のイメージ.jpg

2. さらに、上記はよくわからなかったので、ターミナルでQGIS内のpythonディレクトリ(教えていただいた、/Applications/QGIS.app/Contents/MacOS/bin)に移動し、pipを入れてみようとしましたが、「他のディレクトリに既に存在します?」というようなメッセージがあります(写真2枚目)。また念のため、こちらのディレクトリでpip内のモジュールを確認したところ、pyopenglが入っているということになります(写真3枚目)。2024-01-31 15.22のイメージ.jpg2024-01-31 15.22のイメージ (1).jpg

3. また、おくっていただいたリンクを参考にしようとしましたが、OSGeo4W Shellというのが、macの場合どこから入るのかわかりませんでした。

理解力が乏しいので、大変申し訳ないのですが、ご教授いただけますと幸いです。


2024年1月31日水曜日 10:58:44 UTC+9 takum...@gmail.com:

takuma ohmiya

unread,
Jan 31, 2024, 3:24:25 AM1/31/24
to QGIS初心者質問グループ
結論から言うとQGIS用pythonのpipを直接指定するように
/Applications/QGIS.app/Contents/MacOS/bin/pip install PyOpenGL

みたいにしてみてください。こちらはこれでいけました。
パスは実際にpipが入っているところを指定してください。
(私と違うかもしれません。)
ディレクトリの移動(cd)も不要です。

環境
macbookpro(2021  M1)
macOS 12.7.1
QGIS 3.16.14-Hannover
QGISのpython 3.8.7
ターミナルから起動するpython 3.9.10


>3. また、おくっていただいたリンクを参考にしようとしましたが、OSGeo4W Shellというのが、macの場合どこから入るのかわかりませんでした。
すみません。適当言ってました。

>私の理解では、ターミナルでQGIS内のpythonディレクトリまで移動し、こちらでpip経由でopenGLをインストールするものだと認識しました。
そのやり方ではOS側でインストールしたpython(既にPyOpenGLが入っている)やpipが起動しているはずです。
その状態でpythonを起動して、QGISのコンソールと同様に環境を確かめると下のようになるはずです。
------------------------------------------------------------------------------------
xxxMBP:~ xxx_user$ python
(pythonコンソールが立ち上がる)
>>> import sys
>>> print(sys.executable)
/Library/Frameworks/Python.framework/Versions/3.9/bin/python
↑ 今起動しているpythonの実行ファイル(QGISのものではないはず)
-------------------------------------------------------------------------------------

参考
https://gis.stackexchange.com/questions/351280/installing-python-modules-for-qgis-3-on-mac
回答の4番目
2024年1月31日水曜日 15:28:01 UTC+9 kosuk...@gmail.com:

takuma ohmiya

unread,
Jan 31, 2024, 7:52:22 PM1/31/24
to QGIS初心者質問グループ
#追加
構成次第ではsudoがいるかも(私は不要でした。)
sudo /Applications/QGIS.app/Contents/MacOS/bin/pip install PyOpenGL

あとモジュールが入ったかの確認も下の感じでフルパス指定です。
/Applications/QGIS.app/Contents/MacOS/bin/python3.8 -m pip list

Package Version
--------------------- ------------
(略)
pyodbc 4.0.30
PyOpenGL 3.1.7
pyOpenSSL 19.1.0
2024年1月31日水曜日 17:24:25 UTC+9 takuma ohmiya:

やま

unread,
Feb 1, 2024, 2:11:40 AM2/1/24
to QGIS初心者質問グループ
ご返信いただきまして、有難うございます。

ご丁寧に教えていただいたおかげで、プラグインのインストールまでうまくいきました。
本当に有難うございます。

そもそもフルパス指定していないとQGIS内のpythonを動かすことができていないことが原因だったのですね。
拙い知識でしたが、おかげさまで少し進歩することができました。

引き続き宜しくお願い致します。
2024年2月1日木曜日 9:52:22 UTC+9 takum...@gmail.com:
Reply all
Reply to author
Forward
0 new messages