本記事の位置づけ
本記事は私がPCが故障して環境が色々とリセットされる状態になったので、WSL2のインストールを行ってPythonの環境を準備するまでの過程をまとめたものになります。
とりあえずでPythonを触る初心者向けというよりは、ある程度Pythonを触っているor触るつもりの中級者向けの環境構築になるかと思いますが、参考になれば幸いです。
対象の環境
Windows 11
Ubuntu 20.04.03LTS
下準備
Windowsの機能の有効化
Windowsの設定(Win + I)でシステム > オプション機能 > Windowsのその他機能を選択してください。
選択後のメニューからLinux 用 Windowsサブシステム、Hyper-V、仮想マシンプラットフォームを選択してください。
WSLの設定およびインストール
画面下部の検索欄で「cmd」と入力して出てくるコマンドプロンプトを管理者として起動しましょう。
その後、以下のコマンドを順に実行してください。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
WSLのインストール
以下のコマンドを入力してインストールしてください。
wsl --install -d Ubuntu-22.04
起動後の画面でユーザー名とパスワードを入力してください。(これはWindowsのものと一致していなくても大丈夫です。ただ、大文字とかだとエラーになるので注意)
私がはまったポイントと解決法
はまったポイント1
私の環境ではwsl --install -d Ubuntu-22.04を実行したのちに起動したメニューで以下のエラーが出力されました。
WslRegisterDistribution failed with error 0x800704
(軽く調べた感じだと、Kasperskyの影響でうまくインストールができないっぽい)
解決法1
以下のコマンドを実行。
wsl --update
はまったポイント2
何等かの問題でインストールをやり直すと、以下のエラーが発生する可能性があります。
ディストリビューション 'Ubuntu-22.04' のインストール プロセスが次の終了コードで失敗しました: 4294967295。
Error code: Wsl/InstallDistro/WSL_E_INSTALL_PROCESS_FAILED
解決法2
wsl -lを入力してディストリビューションの一覧を確認して、その後、wsl --install -d Ubuntu-22.04などとディストリビューションを指定することで登録を解除してください。
この後はもう一度インストールを実行すれば大丈夫です。(このエラーが出ているということは、インストールは完了していると思うのですぐにUbuntuが起動するかと思います。)
Pipのインストール
以下のコマンドを実行してください。
sudo apt update
sudo apt upgrade -y
この後、以下のコマンドでpipをインストールしてください。
sudo apt install -y python3-pip
エイリアス登録
以下のコマンドを入力してbashrcの内容を編集してください。
vi .bashrc
以下の内容をファイルの末尾に追記してエイリアスの設定およびパスの設定を行ってください。
alias python="python3"
alias pip="pip3"
export PATH="$PATH:/home/(ユーザ名)/.local/bin"
以下のコマンドで上記の設定内容を変更してください。
source ~/.bashrc
その他
Ubuntu 20.04.6だとPythonのバージョンが古いのでpipenvとか使いたい人はPyenvを導入する必要性があります。
22.04だとPythonのバージョンは3.10.12でPipenvが使えたので私はとりあえずPyenvを入れていません。
(20.04.6でセットアップした端末には入れました...)
また機会があれば追記します。
追記:2024/02/03
22.04.06のほうでなぜかpipenvが使えなかったので結局pyenv導入しました。
以下に導入の際の操作を記します。
Pyenvのインストール操作
実行したコマンドを順に記しておきます。
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
source ~/.bashrc
sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git