Pythonでアプリケーションを動かしたり、統計とか分析とかでPythonを使ったりすることが多くなりました。 最近はStable Diffusionの環境を構築するときもMinicondaが役立っています。
Pythonベースでアプリを動かしたりコードを動かすときに問題となるのが、Pythonやモジュールのバージョンの組み合わせです。 色々なバージョンのPythonを一つの環境に複数インストールして使うのはなかなか大変です。 うっかりシステムで利用するPythonモジュールが別のバージョンに差し替わると、システムの動作に影響が出る可能性がありますし、 重要なモジュールを誤操作で削除してしまうと最悪システムが起動しなくなることにもなりかねません。
Linuxディストリビューションいよってはシステム用のPythonとユーザーが使うPythonを分けているものもありますが、基本的にはPythonを使う場合はPython仮想環境を作って使うというのがある意味お約束になりました。
ただPythonの仮想環境を使う方法は色々ありすぎる上に変化も激しいので、いざ使うときになるとどの方法を使えば良いのか分からなくなります。
そんなあなたにおすすめなのがCondaです。特にMinicondaは手軽に導入できるのでおすすめです。
Minicondaのインストール
次のページの下にあるように、使用中のOSに対応したインストール手順に従ってMinicondaをインストールします。
Windows, Linux, macOSの導入方法がそれぞれ書かれています。
インストール後は、最後に書かれているようにシェルに合わせて実行します。これでMinicondaが簡単に使えるようになります。
例えばLinuxにインストールする場合は、まずシェルを確認して...
$ echo $SHELL /bin/bash
次のようにインストール&設定をします。
mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 rm -rf ~/miniconda3/miniconda.sh ~/miniconda3/bin/conda init bash
一旦ログアウトして再ログインすると、次のように表示が変わります。 これはbase環境に入っている状態です。
$ logout $ ssh cloud-user@172.16.214.192 Activate the web console with: systemctl enable --now cockpit.socket Last login: Tue Oct 17 14:58:38 2023 from ::ffff:172.16.0.101 (base) [cloud-user@miniconda-test ~]$
あとは、例えば次のように指定して仮想環境の作成と切り替えができ、
(base) [cloud-user@miniconda-test ~]$ conda create --name snakes python=3.10 (base) [cloud-user@miniconda-test ~]$ conda activate snakes
conda deactivate
で元の環境環境に戻ります。
(snakes) [cloud-user@miniconda-test ~]$ conda deactivate (base) [cloud-user@miniconda-test ~]$
さらにconda deactivate
を実行するとCondaによるPython仮想環境から抜けて、元の環境に戻ります。
base環境にもう一度入りたいときはログインし直すか、conda activate base
を実行します。
(base) [cloud-user@miniconda-test ~]$ conda deactivate [cloud-user@miniconda-test ~]$
要らなくなった環境は、次のコマンドでサクッと削除できます。 なにか作業中にうまく動かなくなったときは仮想環境の作り替えだけで済むので簡単です。
conda remove -n ENVNAME --all
環境構築の自動化も可能
次のようにYAML形式で設定を書いて環境構築を自動化することもできます。 テスト環境を作ってアプリを実行するといったCI/CDツールなどでの利用もできそうですね。
name: ansible channels: - defaults dependencies: - python=3.10.12 - pip=23.2.1 - pip: - ansible-core==2.15.3 - ansible-lint - jinja2 >= 3.0.0 - PyYAML >= 5.1 - cryptography - packaging - importlib_resources >= 5.0, < 5.1 - resolvelib >= 0.5.3, < 1.1.0
先程のような設定ファイルを使ってPython仮想環境が作れます。この例は、Ansible Core環境をCondaで作る例です。
conda env create -f ansible-environment.yaml conda activate ansible
Pythonのバージョンやモジュールのバージョンをちょこちょこ変えて動作検証みたいなことにも役立ちそうですね。
まとめ
CondaはPythonの仮想環境を簡単に作る事が可能です。 使い方は簡単ですしPythonを使う場合、バージョンや環境の使い分けがしやすく便利なので使ってみてください。