Windows11 WSL2 Ubuntu Python
WSL2 Ubuntu Python 概要
ここからは Python パッケージをインストールしていきます。
Python パッケージをどこにインストールするのか説明します。
Python パッケージは次の環境にインストールできます。
- Root 領域
従来、例として私は sudo 命令を使って
$ sudo pip3 install matplotlib
のようなコードで matplotlib パッケージを Root 領域にインストールしていました。
でも最近は仮想環境にインストールすべしとのエラーが出るようになりました。 - 仮想環境
そこで、仮想環境 venv を作成し、ここは Root 領域ではないので sudo 命令は使わず 例として
$ pip3 install matplotlib
のようなコードで matplotlib を 仮想環境 venv にインストールしていました。
ところが、TensorFlow パッケージがインストールできないのです。
Illegal instruction (コアダンプ)
が発生します。
原因は、最新第12世代インテル CPU が拡張命令セット AVX-512 に対応していないことでした。
私の PC はこれに該当していたのです。
- 仮想環境 base
Miniconda の仮想環境 base のなかに TensorFlow パッケージをインストールすると
Illegal instruction (コアダンプ)
は発生しないことがわかりました。
どうも conda の中の Tensorflow の CPU 命令は AVX ではなく SSE4.1 SSE4.2 を使用しているようです。
そこで、今回は仮想環境 base を作成し、ここに各 Python パッケージをインストールすることにします。 - GPU 環境
tensorflow には CPU 版と GPU 版があります。
今回は GPU 版をインストールします。
そのためには GPU ドライバーのインストールも必要です。
方針が決まりましたのでインストールを始めます。
pip3 インストール準備
Pythonパッケージのインストールなどを行うユーティリティ pip3 が必要です。
WSL2 Ubuntu のなかに Python はなし、python3 と python3.10 が
/usr/bin/python3
/usr/bin/python3.10
にインストールされ
pip 及び pip3 はインスト-ルされていませんでした。
そして、python3 は python3.10 にリンクされていました。
よって、python3 用のインスト-ルツ-ル pip3 をインストールすることにします。
Ubuntu 環境でインスト-ルされる pip3 は、
$ sudo apt install python3-pip
でインスト-ルできます。
この pip3 は、通常の pip コマンドでパッケージを
インストールするのと同様に、/usr/local/lib/ などの全ユーザが参照できる
Python のモジュールを格納するディレクトリにインストールすることができるほか、
追加で --user オプションを指定することができます。
これにより、それぞれのユーザ個別の専用ディレクトリにインストールすることができ、
他のユーザに影響を与えずに自由にパッケージのインストールや削除ができます。
また、pip3 を使用せず
$ sudo apt install パッケ-ジ名
でもインスト-ル可能です。例えば
sudo apt-get install python3-matplotlib
とすると matplotlib がインスト-ルされるのですが、
ついでに、python2.7 もインスト-ルされてしまうので困りものです。
お薦めしません。
pip3 インスト-ル
Python パッケージインストール用 pip3 をインスト-ルします。
WSL2 Ubuntu のターミナルを立ち上げます。
Ubuntu を最新の状態にします。
yamada@yama:~$ sudo apt update
yamada@yama:~$ sudo apt upgrade
を順に実行し、インストール済みのパッケージ更新をおこない、
Ubuntu を新しいバージョンにアップグレードします。
apt upgrade は「有効なパッケージ一覧」を元に実行されるので、
apt update と組み合わせて使う必要があります。
沢山インストール経過が表示されて完了します。
yamada@yama:~$ sudo apt install python3-pip
Enter を押してインスト-ルを開始します。
しばらく黙りこくってからコメントが次々と出てきます。
途中インスト-ルの確認メッセ-ジが出ますので y を入力します。
時間がかかってインスト-ルが完了します。
$ which pip3
でインスト-ルを確認すると
/usr/bin/pip3
に入ったことがわかります。
Miniconda インストール
仮想環境 base を作るため Miniconda をインストールします。
- conda install 命令を使う
conda install 命令を使える Anaconda はデータサイエンスをはじめるために必要なもの一式が揃っている Python のディストリビューション (カーネルとかソフトウェアとか必要なものを一緒にして配布してくれるソフト) です。
一式揃っている反面、データーサイズが大きいです。
一方 Miniconda3 はパッケージ管理システムの conda と必要最低限のパッケージのみにとどめた Python のディストリビューションです。
そこで今回はサイズの小さい Miniconda3 をインスト-ルし conda install 命令を使えるようにします。
Miniconda3 のインスト-ル方法については
Miniconda3 を Ubuntu へインストール
Ubuntu 18.04上でminicondaを使う
を参考にしてください。 - 作業ディレクトリ作成
作業ディレクトリ tmpmcon を作ります、名前は適当です。
yamada@yama:~$ mkdir -p tmpmcon
-p : 必要に応じて親ディレクトリも作成
作成できたら
yamada@yama:~$ cd tmpmcon
以降 tmpmcon 内で作業します。
yamada@yama:~/tmpmcon$
タ-ミナルの表示が変更になりました。 - Miniconda Linux 64-bitのシェルファイルダウンロード
公式サイトより、Python 3 用の Miniconda Linux 64-bit の 最新のシェルファイルをダウンロードします。
wget コマンドで作業ディレクトリにダウンロードします。yamada@yama:~/tmpmcon$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh yamada@yama:~/tmpmcon$ ls [結果] Miniconda3-latest-Linux-x86_64.sh なお、 Miniconda3-latest-Linux-x86_64.sh.1 が見えるときあり。
となります。
- Miniconda3 インスト-ル開始
以下のコマンドで sh ファイルを実行します。
yamada@yama:~/tmpmcon$ bash Miniconda3-latest-Linux-x86_64.sh
"ライセンスアグリーメントを確認してください"
というメッセージが出ます。
Enterキーを何回も押下してライセンスアグリーメントの内容を確認します。
Do you accept the license terms? [yes|no]
[no] >>>
Please answer 'yes' or 'no':'
>>> yes
ライセンスアグリーメントに同意する場合 yes と入力し、Enterキーを押下します。
Miniconda3 will now be installed into this location:
/home/yamada/miniconda3
インストール先を確認します。
デフォルトは"/home/ユーザー名/miniconda3/"となります。
Enter キーを押下するとインストールがはじまります。
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home/yamada/miniconda3] >>>
→ miniconda はここにインストールされました。
インストールが完了すると、初期化のために conda init を実行するかどうか確認されます。
yes と入力し、Enterキーを押下します。
以上でインストール手順は終了です。 - Miniconda3 base 環境 無効化
Ubuntu で新たにターミナルを開くと、デフォルトの仮想環境である base 環境が有効になります。
ターミナル起動時に仮想環境を自動で有効化したくない場合は、以下のコマンドを実行することで変更が可能です。
yamada@yama:~$ conda config --set auto_activate_base false
base 環境を有効にしたい時は
yamada@yama:~$ conda activate
base 環境を無効にしたい時は
(base) yamada@yama:~$ conda deactivate
とします。
ここまでで、WSL2 Ubuntu Python 仮想環境の構築ができました。
引き続き GPU 環境を構築していきます。