以前、ルート権限がない環境でpythonの開発環境を作成しました。
今回は、サーバーと仮想環境におけるpythonのバージョンアップを行います。
サーバーのバージョンアップを行ってから、仮想環境のバージョンアップを行います。
サーバーのバージョンアップを行う
パッケージ管理が可能なRye(https://rye-up.com/)を利用して、pythonのバージョンアップを行います。
curl -sSf https://rye-up.com/get | bash
パスを設定する
設定ファイルにパスを追加します。
echo 'source "$HOME/.rye/env"' >> ~/.bashrc
最終行にパスが追加されていることを確認します。もし、最終行に追加されていない場合は、手動で編集します。
追加した設定を反映し、pythonのバージョンを確認します。
source "$HOME/.rye/env"
python -V
venvのバージョンアップを行う
pipなしで仮想環境のバージョンアップを行い、pythonのバージョンを確認します。
python -m venv --without-pip --upgrade {仮想環境名}
source {仮想環境名}/bin/activate
python -V
pythonのバージョンが古い場合は、シンボリックリンクが旧バージョンを向いている可能性があるため、シンボリックリンクを確認します。
cd {仮想環境名}/bin
ls -l python*
python3.12 が Rye でインストールしたpython、python/python3などがpython3.12にリンクされているかどうか確認します。
※2024/5/5時点では python3.12 が最新版です。
lrwxrwxrwx xxxxx zzzzz 5月 5 12:00 python -> python3.12
lrwxrwxrwx xxxxx zzzzz 5月 5 12:00 python3 -> python3.12
lrwxrwxrwx xxxxx zzzzz 5月 5 12:00 python3.12 -> {$HOME}/.rye/py/cpython@3.12.3/bin/python3.12
リンクされていないようならば、シンボリックリンクを更新します。
ln -si python3.12 python
ln -si python3.12 python3
ln -si {$HOME}/.rye/py/cpython\@3.12.3/bin/python3.12 python3.12
再度pythonのバージョンを確認し、新しいバージョンが表示されたならばOKです。
バージョンを切り替える場合は、切り替えたいバージョンを指定します。
rye pin 3.11
Ryeでサポートされているのは、Python 3.9 から 3.12 です。
venvのバージョンアップができない
venvのバージョンアップが上手くできない場合、再度仮想環境を作成すれば、新しいバージョンで仮想環境が作成できます。
(venvのpythonのバージョンを最新化しようとした結果、レンタルサーバーのpythonバージョンを上げられることを知りました。)
コメント