pythonのバージョン切り替えをしたい。
調べてみましたが、Pythonのバージョン切り替えやプロジェクトごとのバージョン管理はなかなか分かりづらい。 pythonそのもののバージョンを切り替えるにはpyenvを使うのが良さそうです。
実際のところ、pyenvをsystem wideにインストールする必然はないです。 ぼくの場合はユーザーのディレクトリに置きたくなかっただけの理由です。
参考
- Qiita: pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。
- pyenv、virtualenv、pip、anacondaの違いを説明します (寝坊した)
pyenvのインストール
基本的にRuby版であるrbenvのインストールと同様の手順でいけます。(DebianにRuby 3をインストール)
最初にディレクトリを作成してgroupとpermissionを設定すれば、あとの作業はsudoを使わなくてもOK。
sudo mkdir -p /usr/local/share/pyenv sudo chgrp -R staff pyenv sudo chmod -R g+rwxXs pyenv git clone https://github.com/pyenv/pyenv.git /usr/local/share/pyenv git clone https://github.com/pyenv/pyenv-virtualenv.git /usr/local/share/pyenv/plugins/pyenv-virtualenv環境変数の設定は以下の通りです:
export PYENV_ROOT="/usr/local/share/pyenv" export PATH="${PYENV_ROOT}/bin:${PATH}" export PATH="${PYENV_ROOT}/shims:${PATH}" eval "$(pyenv init - )"
/usr/local/share/pyenv/shimsのPATHを追加しているのは、これが無いとpyenvのpythonが認識されないため苦肉の策です。 この対処が正しいのかは分かっていません。
環境変数を反映させます。ぼくはzshを使っているの.zshenvに入れています。ご自分の環境に合わせて下さいね。source .zshenv
pythonのインストール
pyenv install 3.8.11 pyenv local 3.8.11
確認すると下のようになります:
~% pyenv versions system * 3.8.11 (set by /home/xxxx/.python-version)