#はじめに
RDkit の 2021.3.2.3 が pipでインストールできるようになり、有償化したAnacondaから解放されると喜んだ人もいるかと思う。
しか~し、残念ながら我らが Windows では、 pip install rdkit-pypi
しても、ERROR: No matching distribution found for rdkit-pypi
と表示され、インストールできないのであ~る。
そこで今回はWindowsでも快適に pip 版の RDkit を使う方法を説明する。
方法
ネタバラシだが、LinuxベースのDockerイメージに RDKitをpipでインストールし、それを使うというものである。
環境
- Windows 10
- Docker
- python 3.8
- RDKit 2021.3.2.3
手順
前提として、Dockerはインストールされているものとする。
Dockerイメージの作成
まずは requirements.txt に、RDkitやインストールしたいライブラリを記載しよう。
rdkit-pypi==2021.3.2.3
続いてDockerファイルを用意しよう
FROM python:3.8
WORKDIR /tmp
ADD requirements.txt /tmp
RUN pip install -r requirements.txt
WORKDIR /test
思考錯誤して分かったのだが、pip 用の RDKit が用意されている Python のバージョンが 3.8 であることに注意しよう。
続いて requirements.txt、Dockerfile のある場所で以下のコマンドを実行し、Dockerイメージを作成しよう
docker build . -t <タグ名> -f Dockerfile
これでRDkitがインストールされたLinuxベースのDockerイメージができる。
Dockerのコンテナの起動
続いてDockerコンテナを起動しよう
docker run -it -d --name <コンテナ名> --mount type=bind,src=<アプリケーション開発を行っているフォルダ>,target=/test <タグ名> bash
コンテナ名は適宜に指定してほしい。
Dockerコンテナにbashで接続
あとはアプリケーション開発を行っているフォルダに移動し、コンテナに bash で接続しよう。
docker exec -it <コンテナ名> bash
root@ed5354c38390:/test#
すると、アプリケーションの開発を行っているフォルダがマウントされており、RDkitがインストールされたpython環境をあたかもローカルのように利用できるのだ。
さらに工夫すれば、Windowsで開発したアプリをフォルダ毎、Dockerに追加し、そのDockerイメージをDockerリポジトリに登録し、本番環境にあっという間にディプロイ、な~んてこともできてしまうのだ。
こういう体験をすると、Dockerが如何に便利かが良く分かる。
#補足
本記事は、VSCode等でRDkitのアプリケーションを開発するケースを想定したが、JupterLabで解析したりモデル作りたい!という場合は、上の手順に以下を追加すればできるだろう。(試してないけど)
- 「Dockerイメージの作成」の requirements.txt に jupyterlab を追加する。
- 「Dockerのコンテナの起動」の際に
-p
オプションでローカルポートとコンテナ内部ポートを指定する。 - 「Dockerコンテナにbashで接続」した後、
https://qiita.com/RayDoe/items/e1ec21c63a15adb1a061
を参考にJupyterLabを起動する。その際ポートは、2で指定したコンテナ内部ポートを指定して起動する。 - ローカルのブラウザより、3で起動したJupyterLabのURL、2で指定したローカルポートを指定して接続する。