LoginSignup
2
0

Pythonのインストールしたライブラリがインポートできない

Last updated at Posted at 2023-12-10

この記事は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君でした。

2
0
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
2
0