エックスサーバにインストールしたDjango環境をアップデートする

プログラム

以前に、こちらの記事で紹介のとおり、エックスサーバにDjango環境を構築しました。この環境は自動ではアップデートされませんので、定期的にアップデートする必要があります。

今回はこの手順を記録しておきます。

アップデートの有無確認

まずはアップデートがあるかどうかを確認します。

$ pip list -o

アップデートが存在すると、

Package                Version   Latest    Type
---------------------- --------- --------- -----
Django                 3.2.15    3.2.18    wheel

といった形で、現在のバージョンと最新のアップデートバージョンを教えてくれます。

(メモ)「$ pip list 」を実行して、アップデート前にバージョンを控えておくと、何かあった場合に役に立つかもしれません。

アップデートの手順

アップデートを一つずつ実施する場合は、

$ pip install -U パッケージ名

で、実施可能ですが、他にもアップデートするパッケージがあれば、一つずつ実行しないといけないので大変です。

ですので、pip-reviewというパッケージをインストールして、こちらを使用して、一括アップデートを実施しました。
まず、pip-reviewのインストールを実施します。

$ pip install pip-review

pip-reviewでもアップデートが存在するか確認できます。

$ pip-review

アップデートがあれば、以下のコマンドで一括アップデートを行います。

$ pip-review --auto

私の環境の場合、一回実行すると、一つだけ残っていたので、再度アップデートコマンドを実行しました。
すると、なにやらmysql-connector-pythonのバージョン依存に関するメッセージがでましたので、

ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
mysql-connector-python 8.0.32 requires protobuf<=3.20.3,>=3.11.0, but you have protobuf 4.22.0 which is incompatible.

以下のコマンドでダウングレードしました。

$ pip install protobuf==3.20.3

これにより、protobuf 4.22.0が最新だったのですが、3.20.3にダウングレードしております。プログラムの動作確認で問題がなかったので、とりあえず様子見です。
もしアップデートするものがなくなれば、「Everything up-to-dat」と表示されます。

アップデート後、プログラムが正常に動作するかを確認して終了となります。今回は、ここまでです。