Pythonで開発を行おうとすると、OSに付属のものとは切り離されたバージョンを利用したくなる。
複数バージョンのPythonを管理し、切り替えることができるツールの一つとしてpyenvがある。
この記事ではDebian 12にpyenvをインストールし、pyenvを用いてPython 3.12.3をインストールするまでの手順について残す。
Python 3.12.3は、この記事を書いた時点での最新の安定板である。
手順
最初にpyenvをインストールする。
シェルはbashとする。
# pyenvのインストールスクリプトをダウンロードして、そのまま実行する。 curl https://pyenv.run | bash # PATHを通して`pyenv`を使えるようにする。 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc # ~/.profileが存在する場合 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile echo 'eval "$(pyenv init -)"' >> ~/.profile # ~/.bash_profileが存在する場合 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(pyenv init -)"' >> ~/.bash_profile # 設定を反映 exec "$SHELL"
続いて、Pythonのインストールに必要な前提のライブラリをインストールする。
さもないと続くpyenv installでPython本体のインストールに失敗する。
最低限必要なライブラリはlibssl-devのみであり、他はオプション機能である。
ただしオプションといえども、あとからモジュールが利用できないといった問題で時間を取られないよう、初めからすべてインストールしておくべきだ。
sudo apt install libssl-dev libbz2-dev libffi-dev liblzma-dev libreadline-dev libsqlite3-dev tk-dev
最後にpyenvを用いてPythonをインストールする
# pyenvを使って指定バージョンのPythonをインストール pyenv install 3.12.3 # インストールしたバージョンのPythonを有効化 pyenv global 3.12.3 # Pythonバージョンがちゃんと切り替わっているか確認 python -V
備考
pyenvが提供する機能は「異なるバージョンのPythonを簡単に切り替えられるようにする」だけである。
プロジェクトごとに利用するパッケージを分離するには別の手段を使う必要がある。
この要求を満たすものとして手軽なものはPythonに付属のvenvだろう。