この記事はIPFactory Advent Calender 2023 10日目の記事です。
原因
sudo pip3
を使用してしまい、実際の実行環境のパスとは違う場所にライブラリをインストールしていた
sudo管理者権限での実行と一般ユーザでの実行で関連付けられているPythonバージョンが違いました。
経緯
sudo pip3 installをやってしまった
tensorflowライブラリをインストールしたくて、やってしまいました
sudo pip3 install tensorflow
importしようとするとエラーになります。確認のためpip3 list
をしました。しかしPackageの一覧に無い!(それもそのはずです。sudo pip3 list
をすると出てきます。)
ログを見返してみた
現在使用しているのはpython3.11です。しかし、上記のsudo pip3 install tensorflow
した時のログ確認すると、これが目に入りました。
Requirement already satisfied: packaging in /usr/local/lib/python3.8/dist-packages (from tensorflow) (21.3)
待て待てpython3.8???これはおかしいと思い調べると、
$ which python3.8
/usr/bin/python3.8
$ which python3.11
/home/aaa/.asdf/shims/python3.11
2個ある……しかも場所が全然違います。恐らくaptで3.8、asdfで3.11を入れていたようです。
sudo pip3 --versionを調べる
$ pip3 --version
pip 23.3.1 from /home/aaa/.asdf/installs/python/3.11.0/lib/python3.11/site-packages/pip (python 3.11)
$ sudo pip3 --version
[sudo] aaa のパスワード:
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
はい、こちらsudoが原因のようで間違いないです。sudoがあるかないかでインストール先が変わってしまうことが確認できました。
まとめ
考えなしにsudoを使ってはいけないことを学びました。
Pythonが3.8と3.11の両方あるのも、整理しないといけないですね。
この記事はIPFactory Advent Calender 2023 10日目の記事です。
9日目はK5h1n0君でした。