最終更新 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 現在)