#やったこと **① Anaconda3をwindowsにインストール ② Anaconda3上でPython3.7系の仮想環境を構築 ③ 仮想環境でRDKitをインストール** 環境: windows 10(ノートPC) #① Anaconda3をwindowsにインストール ####Anaconda3を導入するメリット : **RDKitを動かすのに必要な諸々のパッケージがまとまっていて、個々のパッケージを導入するよりも労力が小さくて済む。** …というわけで[**公式サイト**](https://www.anaconda.com/products/individual)からwindows用の.exeファイルをダウンロードし、以下の点に注意して実行します。 1. Add Anaconda to the system PATH environment variable は推奨されていないようなので、チェックを外してインストールする(既存のPythonとの競合を防止) 2. パス名は日本語を含まないように注意 その他のインストールの詳細については解説記事が無数にあるので、どれかを参考にして入れて下さい。 基本的には [Next] 連打でOKです。 >※インストールには結構時間が掛かりました。(1時間弱くらい?) ※パスを通さないとそのままでは動かないので注意。私の場合、システム環境変数の "Path" に以下のパスを追加しました。 >```:anaconda3を置く場所はインストール時に指定可能 C:\Users\(user名)\anaconda3 C:\Users\(user名)\anaconda3\Scripts C:\Users\(user名)\anaconda3\Library\bin C:\Users\(user名)\anaconda3\Library\mingw-w64\bin ``` Anacondaが正しく導入されているかどうかは `conda --version` などで確かめられます。 #② Anaconda3上でPython3.7系の仮想環境を構築 しかしこのままではRDKitは使えません。なぜなら、`conda` で導入できるRDKitはPython3.8系には対応していないからです😅。 (参考:[**RDKit をインストールできなかったり import できなかったりしたときの対処法まとめ (Anaconda ユーザー向け)**] (https://datachemeng.com/rdkit_install_import)) そこで、Python3.7系の仮想環境を構築することにします😤。 `conda create --name myenv python=3.7` をコマンドプロンプトで実行して仮想環境(Python 3.7.10)を新規作成。 (参考:[**Anaconda3 コマンドまとめ**](https://qiita.com/WestRiver/items/cce9c99076d59abd3f69)) ```:Python3.7系の仮想環境を構築 C:\Users\(user名)> conda create --name myenv python=3.7 ``` >※**仮想環境の名前は何でもよい**(今後さらに仮想環境が増えるなら「py37」とかの方が分かりやすいかも?)。 ※私のPCでは仮想環境の構築に10分以上要しました。 ※ `conda activate myenv` を実行しても `CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.` と出てエラーになる場合は**コマンドプロンプトを再起動する**。 (`C:\Users\(user名)\anaconda3\etc\profile.d` にあるシェルスクリプトは特に変更していません) `conda activate myenv` で仮想環境「myenv」を起動すると入力待ちが以下のように変わります。 ``` (myenv) C:\Users\(user名)> ``` > `conda deactivate` で仮想環境を終了できます。 #③ 仮想環境でRDKitをインストール 以下のコマンドをコマンドプロンプトで実行して仮想環境でRDKitをインストール。 ```:RDKitをインストール conda install -y -c rdkit rdkit ``` >※RDKitのインストールには30分ほど要しました。 Pythonを対話型で起動して `import rdkit` がエラーにならなければ導入できています。お疲れ様でした。 # おまけ もう少し遊びたい人は、以下の3行を入力してみて下さい。トルエン骨格のxyz座標がMolBlock​形式で出力されます。 ```py:実行例 >>> from rdkit import Chem >>> m = Chem.MolFromSmiles('Cc1ccccc1') >>> print(Chem.MolToMolBlock(m)) RDKit 2D 7 7 0 0 0 0 0 0 0 0999 V2000 3.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.7500 -1.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.7500 -1.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.5000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.7500 1.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.7500 1.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 2 3 2 0 3 4 1 0 4 5 2 0 5 6 1 0 6 7 2 0 7 2 1 0 M END >>> ``` >仮想環境で.pyファイルを実行すればRDKitを使うスクリプトが実行できます。