Introduction
GW に突入しましたが、皆様はいかがお過ごしでしょうか?
私は無事 9 連休を勝ち取り、業務で使い込んでいるにもかかわらず意図的に避けてきたPythonの記事を書こうかなと準備しておりました。
折角なのでPythonもアップデートして臨もうと。
なお業務ではanaconda、自宅ではpipで管理しており、業務中はpip=腫れ物です。
にもかかわらず大して調べず深夜のノリでやって更新に失敗......解決に苦労しました。
調べてもpip下でのPythonアップデートはあまり出てこなかったので、手順と対処法を共有します。
本記事が少しでも読者様の学びに繋がれば幸いです!
「いいね」をしていただけると今後の励みになるので、是非お願いします!
環境
Ubuntu22.04
Python3.10(アップデート前)
Python3.11(アップデート後)
設定ファイルのエクスポート
アップデート後のPythonにパッケージを一括インストールするために、現在の設定をエクスポートします。
anacondaでは環境名.yamlに書き出すのが一般的という認識ですが、pipではrequirements.txtに書き出します。
pip freeze > requirements.txt
Python のアップデート
最新版のPythonは以下のサイトからダウンロードしました。
非公式とありますが、提供元はPython Japan様で安心です。
インストール方法は以下の記事が分かりやすかったです。
記事の通り、アップデート後にPythonのバージョンが上がっていることを確認します。
python3 -V
設定ファイルのインポート
requirements.txtをアップデート後のPythonにインポートします。
pip install -r requirements.txt
トラブル発生
確認のためnumpy等を import してみると、お馴染みのエラーが発生。
ModuleNotFoundError: No module named 'numpy'
Pythonのディレクトリがどこにあるかわからなかったので、pipインストールしたパッケージの格納先を調べました。
Locationに出力されます。覚えておくと何かと便利です。
pip show numpy
Pythonのディレクトリを確認。消した筈のPython3.10が共存しています。

ちなみに、pip installした package はPython配下のsite-packagesに格納されますので各ディレクトリ確認しました。
するとインポート結果はすべてPython3.10の方に入っていました。
Python3.10を消して再度インポートを試すと、消した筈のPython3.10が復活します。
対処法
pipがインストールされているPythonのバージョンを確認します。
pip -V
Python3.10の方が返ってきました。
ここまでで頓珍漢な試行錯誤を繰り返していたこともあり、パスがPython3.10に通っていることは予測できました。
パスをPython3.11に通せば正常にインポートできそうなので、.bashrcに 1 行追記します。
export PATH=/home/<ユーザーネーム>/.local/lib/python3.11/site-packages:$PATH
設定ファイルのインポートを再実行すると、無事Python3.11にパッケージがインポートされました。
site-packagesやPythonファイルの実行も試し、正常に使用できるようになりました。
おまけ
余談ですが、最近画像編集フリーソフトのGIMPを使う機会が多くありました。
除去しきれなかった背景の除去や加工、合成、座標確認など行えることと操作性のバランスが良く、特に検証レベルでは何かと役に立つのでおすすめします。
(アプリケーションが豊富なので他の選択肢もありそうですが)Windowsも対応しています。
最後に
紆余曲折ありながらも無事Python3.11にアップデート完了しました。
速度改善など個人的に試したいことが盛り沢山です。
ただアップデートにより、実装に使う予定だった背景除去のRembgがバージョン問題で現状使えなさそうで少し困っています......
業務ではOpenCVで背景除去スクリプトを書いていますが、工数の割に精度は難ありだったので代替案を検討中です。
元も子もないですが、部分的にはPythonで書いて、スクリプト全体はGoogle Colabで流せるようにするのもありかなと考えています......
最後まで閲覧頂きありがとうございました。
備忘録の側面もありますが、本記事がお役に立てば幸いです!