Python初学者向けにMinicondaを用いた実行環境を整えていきたいと思います。最終的にはJupyter notebookでコーディングができる状態まで持っていきます。
UbuntuだとデフォルトでPythonが入っていますが、余計なライブラリをインストールした場合にOSを破壊しかねないので仮想環境やコンテナで別途実行環境を用意するのがおすすめです。
上記の話がピンと来ない方も「UbuntuでPythonを使いたいならとりあえずMiniconda(Anaconda)」くらいの感覚で読み進めていただければ幸いです。
Ubuntuを想定して話を進めますが他のOSでも流れは同じだと思うのでご参考ください。
Minicondaのインストーラーをダウンロード
公式が提供しているインストーラー(.shファイル)をダウンロードします。
ダウンロード方法はいくつかあると思いますが、今回は以下の2つを紹介します。
方法1:GUIからのダウンロード
公式のリポジトリからインストーラーをダウンロードします。
Ubuntuの場合、「Miniconda3-py3xx_xx.x.x-0-Linux-x86_64.sh」のように末尾が「Linux-x86_64.sh」であればどれを選んでも基本的には大丈夫です。
個人的な意見ですが、最新バージョンすぎると不具合がある可能性が高いのでちょっと前くらいのバージョンをおすすめします。
特に理由がなければ「Miniconda3-py312_24.7.1-0-Linux-x86_64.sh」あたりを選ぶのが良いと思います。
リンクをクリックしたらファイルは「/home/(username)/Downloads」あるいは「/home/(username)/ダウンロード」にダウンロードされます。
方法2:CLIからのダウンロード
wgetコマンドでCLIからダウンロードする方法もあります。
wget https://repo.anaconda.com/miniconda/<FILENAME>
<FILENAME>にはリポジトリのファイル名を入力します。サーバーの遠隔操作等でCLIしか使えない状況でもない限りは方法1が無難でしょう。
wgetではカレントディレクトリにファイルがダウンロードされるのでCLIになれてきたらこちらを使ってみるのもいいかもしれません。
Minicondaのインストール
インストーラーが存在するディレクトリに移動する、あるいはインストーラーをカレントディレクトリに移動してインストーラーを実行します。
自分がディレクトリに移動する場合は以下のコマンドを参考に、
cd /home/(username)/Downloads
インストーラーを移動する場合は以下のコマンドを参考にしてください。
mv /home/(username)/Downloads/Miniconda3-py3xx_xx.x.x-0-Linux-x86_64.sh ./
いずれの場合もusernameには現在のUbuntuのユーザー名を入れてください。
移動後は以下のコマンドでインストーラーを実行します。ファイル名は適宜変更してください。
bash ./Miniconda3-py3xx_xx.x.x-0-Linux-x86_64.sh
コマンド実行後にいくつかの入力が求められますが基本的には全てYesで大丈夫です。
以上の操作を終えると「/home/(username)/miniconda3」ができます。これでMiniconda(新しいPython実行環境)のインストールは完了です。
MinicondaのPython環境を利用するためには、新たなターミナルを立ち上げるか、既存のターミナルで以下のコマンドを実行してください。
source ~/.bashrc
ターミナルの左側に”base”の文字が現れたらMinicondaのPython環境に入っている証拠です。これがどういう状態なのかは最後らへんで少し触れるので興味のある方はご覧ください。
defaultのチャンネルを削除しconda-forgeを追加する
Minicondaでは、「pip install xxx」とは別に「conda install xxx」で外部のライブラリをインストールすることができます。
この辺りの話もある程度理解していないと後々面倒なことになるのですが、今回は割愛したいと思います。ただし、1つの仮想環境でのインストール方法はpipかcondaのどちらかで統一することをおすすめしておきます(複雑になってくると両方使わないといけなくなりますが…)。
さて、condaを利用したインストールは”チャンネル”を指定し、インストールする外部のライブラリは指定したチャンネルの接続先から探すようなイメージになります。
チャンネルは「conda install xxx -c yyy」のように”-c”で明示的に指定することもできますが、デフォルトでは”default”というチャンネルが指定されています。
この”default”が曲者で商用利用や企業で利用する場合にライセンスに引っかかる可能性があります(参考)。
個人で利用する分にはあまり気にしなくても良いと思いますが、ほとんど同じ”conda-forge”というライセンスに引っかからないチャンネルがあるので、defaulを削除しconda-forgeのチャンネルを追加したいと思います。
まずは以下のコマンドでcondaに登録されているチャンネルを確認してみましょう。
conda config --show channels
channelsの下にdefaultの文字が見つかるかと思います。では次に、以下のコマンドでdefaultのチャンネルを削除し、conda-forgeのチャンネルを追加してみましょう。
conda config --remove channels defaults
conda config --add channels conda-forge
これでライセンスに引っかかる心配は(今のところ)なくなりました。
仮想環境の構築とJupyter Notebookのインストール
最後にcondaで仮想環境を構築し、その仮想環境化でJupyter notebookによるコーディングができる状態を作りたいと思います。
仮想環境は”異なるバージョンのアプリケーションが干渉しないようにするための箱”だと考えてください。
例えば、Pythonでは「プログラムAを動かすためにはライブラリXのバージョン1が必要」、「プログラムBを動かすためにはライブラリXのバージョン2が必要」みたいなことがあります。
Pythonのライブラリは異なるバージョンを保有することができないので、プログラムAが動く環境を作るとプログラムBが、プログラムBが動く環境を作るとプログラムAが動かない、といった状況になります。
このような状況を解消できるのが仮想環境という仕組みです。特に複雑なことをしなければ仮想環境を作るまでもありませんが、後々必要になるかもしれないので今回は仮想環境下でPythonの環境を整えてみたいと思います。
仮想環境の構築
condaではcreateコマンドで簡単に仮想環境を作ることができます。以下、Pythonのバージョンが3.10である”test”という名前の仮想環境を作るコマンドです。
conda create -n test python=3.10
- -n:仮想環境の名前を指定する。
- python=x:仮想環境内のPythonのバージョンを指定する。
コマンド実行後、yを入力すると仮想環境が作成されます。
次に、以下のコマンドで作成したtestの仮想環境に入ってみましょう。
conda activate test
ターミナル左側の”base”が”test”に変わったと思います。これが仮想環境testに入っている状態です。
以後、仮想環境から出るコマンドを入力しない限りこのターミナルは仮想環境testの情報を基準にプログラムを実行します。
Jupyter Notebookのインストール
仮想環境testでJupyter Notebookを使えるようにしたいと思います。
Pythonのコードを実行する方法は色々ありますが、Jupyter Notebookは実行内容の記録がわかりやすいことや、ブラウザ上で利用可能でありとっつきやすいこと、またインフォマティクス系のライブラリと相性がよいのでおすすめです。
以下のコマンドでJupyter関連のライブラリをインストールします。
conda install jupyter -y
インストール完了後、以下のコマンドを実行することでブラウザ上にJupyter Notebookが起動します。
jupyter notebook
Jupyter Notebookでは、拡張子が.ipynbのファイル上でPythonのコードを記述・実行できます。
使い方の詳細については別途ご確認ください(厳密には色々と面倒くさいことが裏で行われていますが今回は割愛します)。
Jupyter Notebookを停止したい場合はコマンドを実行したターミナル上でControl + Cを入力してください。
仮想環境の削除
最後に作成した仮想環境を削除して終わりたいと思います。
まずは仮想環境testに入っている状態から抜け出します。以下のコマンドを実行してください。
conda deactivate
ターミナル左側の”test”が”base”に戻ったと思います。
次に現在condaが管理している仮想環境を確認したいと思います。以下のコマンドを実行してください。
conda env list
”base”と”test”の2つが表示されていると思います。これまで触れてませんでしたが、実は”base”も(特殊ケースですが)condaが管理する仮想環境の1種です。
それでは以下のコマンドを実行して”test”の仮想環境を削除してみましょう。
conda remove envs -n test --all
コマンド実行後、yを2回ほど入力すると仮想環境が完全に削除されます。
仮想環境は手軽に破棄できることもメリットの1つなので、おかしいなと思った仮想環境は気軽に削除してみましょう。
仮想環境に関する小咄
ここからは知らなくても問題ない部分なので興味のない方は飛ばしてください。
condaで作成した仮想環境の情報は「/home/(username)/miniconda3/envs」で管理されています。
今回題材としたtestも「conda create」実行後にenvs直下にtestフォルダが作成されており、その中でPythonのライブラリやその他必要なファイルが管理されています。
「conda remove envs」で仮想環境を削除した際はenv直下のtestフォルダがまるごと削除されています。
仮想環境と言われると難しい印象を受けますが、実態はメインファイルとは別に用意されたファイル群です。
仮想環境を起動する「conda activate」は、メインファイルにつながっているパスの一部を仮想環境フォルダ内のファイル群に切り替える操作をしているにすぎません(厳密ではない表現ではありません。プロフェッショナルの方ごめんなさい)。
プログラムやアプリケーションの詳細を理解することは難しいですが、自分がしっくりくるイメージを持っていると色々なことがつながってくる気がしています。
上記は管理人がイメージしているものに過ぎませんが、皆様が勉強する際の参考になれば幸いです。
最後に
Minicondaを用いたPython実行環境の構築方法を紹介しました。
Pythonを学習するきっかけになれば幸いです。
コメント