Open4

Debian(WSL)へpyenvをインストールし、pythonをインストールするまで

naan4810naan4810

環境

  • Windows 11 Pro 22H2
  • OSビルド : 22621.1192

Debianのインストール

PowerShellを開いてコマンド実行
wsl --install -d Debian

Debianの環境最新化

sudo apt update
sudo apt upgrade

色々入れる

sudo apt install build-essential
sudo apt install curl wget zip
sudo apt install git

標準のPythonも入れておいた

sudo apt install python3
naan4810naan4810

anyenv からインストール進める

参考にしたサイト

Debian に anyenv をインストールする

.bash_profileではなく.bashrcへ設定を書くように変更した。

git clone https://github.com/anyenv/anyenv ~/.anyenv

echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bashrc

.anyenv/bin/anyenv init

echo 'eval "$(anyenv init -)"' >> ~/.bashrc

anyenv install --init
→ [y] を押す

source .bashrc
→インストール終わり

anyenvからpyenvをインストール

anyenv install pyenv

# インストール完了したら以下(画面で入力を促されるはず)
exec $SHELL -l

# 以下でバージョンが出ればOK
pyenv -v
naan4810naan4810

Python 3.10系を入れてみる

標準パッケージでインストールされたPythonは3.11.2だったので、3.10を入れてみる。

# インストールできるバージョンを確認
pyenv install -l
# 3.10.12 が 3.10系の最新だったのでこれを入れる
pyenv install 3.10.12
→ビルドエラーが出た。 ※エラーメッセージを取得し忘れたので今度同じエラーが出たら追記しよう。

以下のあたりを参照し、ライブラリが足りないみたいだったので不足していそうなものを追加インストール

https://qiita.com/barutou/items/80c31a7cdef930c75e90
https://qiita.com/yossyA/items/f22e2eea5401b6a8260f

sudo apt install openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev

# 改めてインストール
pyenv install 3.10.12
→インストールはできたが、WARNING~ とか出ている・・・

WARNINGが出たライブラリを追加し、再インストールを繰り返した

# WARNINGが出なくなるまで繰り返した結果、以下ライブラリが必要だったためまとめて入れる
sudo apt install zlib1g-dev liblzma-dev tk-dev libffi-dev

# インストールしたバージョンを一度削除
pyenv uninstall 3.10.12

# 再インストール
pyenv install 3.10.12
naan4810naan4810

デフォルトバージョンを切り替える

pyenv versions
→システム用とpyenvでインストールしたバージョンが表示される。今はシステムがデフォルト。

* system (set by /home/xx/.anyenv/envs/pyenv/version)
  3.10.12

# 3.10.12 へ切り替える
pyenv global 3.10.12
pyenv versions

  system
* 3.10.12 (set by /home/xx/.anyenv/envs/pyenv/version)

# バージョンの確認
python -V

Python 3.10.12
→pyenvで指定したバージョンに切り替わっている

pip もいける

pip --version
pip 23.0.1 from /home/tomo/.anyenv/envs/pyenv/versions/3.10.12/lib/python3.10/site-packages/pip (python 3.10)