Summary
Raspbianの古いバージョン(raspberrypi 4.9.35-v7+)でpyenvを使ってPython 3.9.6をインストールしたところ失敗していたが、最新のRaspberry Pi OS (raspberrypi 5.10.17-v7+)とPyenv 2.0.3-6-gf043f47cでは問題なくインストールできた。
Raspberry Piにpyenvを使ってPython 3.9.6をインストールしようとしたが、OpenSSLのlibが見つからないといわれてインストールに失敗。紆余曲折あったが、結論としてはOpenSSL 1.1.1kとCurlを手動でインストールすることで解決。
Raspberry Piのハードウェアバージョンと、Raspberryのバージョンの確認
手元にあったRaspberry Pi 3Bを使用して確認。 設定方法については下記を参照。
インストールを確認したRaspberry PiのハードウェアとRasberry Pi OSのバージョンは以下のとおり。
$ cat /proc/device-tree/model
Raspberry Pi 3 B Rev 1.2
$ uname -a
Linux raspberrypi 5.10.17-v7+ #1421 SMP Thu May 27 13:59:01 BST 2021 armv71 GNU/Linux
$ lsb_release -a
No LSB modules are available.
DIstributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
必要なツールのインストール及びアップデート
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev\\
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev\\
xz-utils tk-dev
Macではpyenvとpyenv-virtualenvを次のようにしてインストールできたが、apt-getではインストールできない(インストール方法は後述)
$ sudo brew install pyenv
$ sudo brew install pyenv-virtualenv
しかたがないので別の方法でインストール
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
.bashrcへの設定の追加
$ echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="${PYENV_ROOT}/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init --path)"
$ echo 'eval "$(pyenv init -)"
またはviで編集して追加
$ sudo vi ~/.bashrc
実行結果は下記のようになった。
古いバージョンのRaspbianではopensslの問題でうまくインストールできなかったが、最新のRaspberry Pi OSでは問題なくpyenvから以下でインストールできた。
$ pyenv install -v 3.9.6
globalに設定
$ pyenv global 3.9.6