LoginSignup
15
23

【pip】 Python3をアップデートしたら詰まった話

Last updated at Posted at 2023-04-30

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が共存しています。
Screenshot from 2023-04-30 01-48-50.png
ちなみに、pip installした package はPython配下のsite-packagesに格納されますので各ディレクトリ確認しました。
するとインポート結果はすべてPython3.10の方に入っていました。
Python3.10を消して再度インポートを試すと、消した筈のPython3.10が復活します。

対処法

pipがインストールされているPythonのバージョンを確認します。

pip -V

Python3.10の方が返ってきました。
ここまでで頓珍漢な試行錯誤を繰り返していたこともあり、パスがPython3.10に通っていることは予測できました。
パスをPython3.11に通せば正常にインポートできそうなので、.bashrcに 1 行追記します。

~/.bashrc
export PATH=/home/<ユーザーネーム>/.local/lib/python3.11/site-packages:$PATH

設定ファイルのインポートを再実行すると、無事Python3.11にパッケージがインポートされました。
site-packagesPythonファイルの実行も試し、正常に使用できるようになりました。

おまけ

余談ですが、最近画像編集フリーソフトのGIMPを使う機会が多くありました。
除去しきれなかった背景の除去や加工、合成、座標確認など行えることと操作性のバランスが良く、特に検証レベルでは何かと役に立つのでおすすめします。
(アプリケーションが豊富なので他の選択肢もありそうですが)Windowsも対応しています。

最後に

紆余曲折ありながらも無事Python3.11にアップデート完了しました。
速度改善など個人的に試したいことが盛り沢山です。
ただアップデートにより、実装に使う予定だった背景除去のRembgがバージョン問題で現状使えなさそうで少し困っています......
業務ではOpenCVで背景除去スクリプトを書いていますが、工数の割に精度は難ありだったので代替案を検討中です。
元も子もないですが、部分的にはPythonで書いて、スクリプト全体はGoogle Colabで流せるようにするのもありかなと考えています......
最後まで閲覧頂きありがとうございました。
備忘録の側面もありますが、本記事がお役に立てば幸いです!

15
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
23