LoginSignup
4
0

More than 1 year has passed since last update.

Anaconda環境下にインストールしたPyMOL(Open Source) 起動時にエラー「qt.qpa.plugin: Could not find or load the Qt platform plugin "windows" in ""」

Last updated at Posted at 2022-06-21

最終更新 22/07/08

環境

  • Windows 11
  • Anaconda
    • Python 3.9.12
    • Anaconda-Navigator 2.1.4
    • conda 4.13.0

やったこと

すでにconda-forgeがチャンネルに入っている場合は省略

conda config --add channels conda-forge

ここから本題

conda install pymol-open-source
## Solving environment後 Pythonなどのバージョンに合ったものが選ばれる
> Proceed? ([y]/n) ## yと答えるか何も打たずにEnter
> done

PyMOLの起動

pymol
> "C:\Anaconda3\Scripts\\..\python.exe" "C:\Anaconda3\Scripts\\..\Lib\site-packages\pymol\__init__.py"
> could not find or load the Qt platform plugin "windows" in ""

というエラーが出た
どうやらPyQt5プラグインを探せないエラーっぽい

試したけどダメだったこと

Anacondaをインストールした際にデフォルトで付いてくるPyQt5は
Spyder等を起動するのに必須らしいが
conda listで確認するとpypiチャンネルから(pip install ~~)のものらしい

pip uninstall PyQt5 PyQt5-sip PyQtWebEngine
conda install pyqt

でcondaのチャンネルから新しく入れたがエラーは特に変わらず

解決法その1

別のパッケージでも同じエラーが出るらしい
https://qiita.com/sukoppu1102/items/f5c00b520da0fa5d2ff3

ただし 記事の通りにシステム環境変数に「QT_PLUGIN_PATH」を追加すると
他のQtベースのUIを使用しているWindowsのアプリケーション(LINEなど)が
競合を起こして正常に機能しなくなる

そこで以下の記事を参照
https://zenn.dev/eqs/scraps/714b7889323109

この記事の通りにシステム環境変数に以下の値を追加

変数名: QT_QPA_PLATFORM_PLUGIN_PATH
変数値: C:\Anaconda3\Library\plugins  (自身のAnacondaインストール先フォルダを参照)

これで再度ターミナルからPyMOLを実行したところ
無事に起動しGUIが表示されました

しかしこれでも一部のアプリケーションが不具合を起こす場合もあります
その場合は解決法その2を試してください

解決法その2

最初に実行されるファイル「__init__.py」を直接編集します

プロンプト上でpymolを実行したときに表示されるファイル
筆者の環境ではこれ → "C:\Anaconda3\Lib\site-packages\pymol\__init__.py"

適当なエディタで開くと
「setup_environ」
という名前で定義されている関数があると思います

その関数内の最後に以下を追加

def setup_environ():
    ~~
    省略
    'PYMOL_PATH'に色々パスを追加している内容が書かれている
    ~~
    plugin_path = 'C:/Anaconda3/Library/plugins' ## 自身のAnacondaインストール先フォルダを参照
    os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path

こうすることで
__init__.py を実行した時にのみ
一時的に環境変数に'QT_QPA_PLATFORM_PLUGIN_PATH'が追加されるため
他のアプリケーションと競合を起こさないはずです

(最初からpluginフォルダを探すようにデフォルトでなっていて欲しいですが…)


補足

conda install -c schrodinger pymol-bundle

の方はSolving environmentの結果がfailedになってインストール失敗

これはおそらくPythonが3.9だからだと思います
PyMOLをEXEでインストールする場合はPython3.7が付いてくるので
参考:https://pymol.org/2/

コメントより追加補足
conda create -n test
conda install -c schrodinger pymol-bundle -n test
として 新たに作成した仮想環境にpymol-bundleをインストールをしようとすると
Pythonのバージョンは3.8.13になるようです (2022/07/01 現在)

4
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0