Pythonで作業していて、
pip installは成功した- エラーも出ていない
- しかし
importするとエラーになる
という状況に遭遇したことはありませんか。
例えば、次のようなケースです。
pip3 install requests
は成功しているのに、
import requests
を実行するとエラーになる。
これはPython初心者だけでなく、
実務でも非常によく起こるトラブルです。
この記事では、
「ライブラリは入っているのにimportできない」原因を
環境ごとに整理して解説します。
※ 本記事は Mac環境(python3)を前提 に説明します。
この記事でわかること
- importできない主な原因
- pipとPythonの関係
- 仮想環境が関係するケース
- 確認すべき基本コマンド
原因① 実行しているPythonとpipが一致していない
最も多い原因は、
pipでインストールしたPythonと、実行しているPythonが違うことです。
Macでは、次のような状態がよくあります。
- pip3 は Python A を指している
- 実行時は Python B が使われている
この場合、
ライブラリは「入っている」が
今使っているPythonからは見えない状態になります。
確認方法① 実行中のPythonを確認する
まず、
どのPythonを使っているかを確認します。
python3 --version
確認方法② pipが指しているPythonを確認する
次に、
pipがどのPythonに紐づいているかを確認します。
pip3 --version
表示されるパスが、
同じPython系統になっているか確認してください。
原因② VS Codeで別のPythonが選択されている
VS Codeを使っている場合、
エディタで選択されているPythonが
ターミナルと違うことがあります。
この状態だと、
- pip install は成功する
- import は失敗する
という現象が起こります。
VS Code下部(ステータスバー)に表示されている
Pythonを必ず確認してください。
原因③ 仮想環境(venv)が有効化されていない
仮想環境を使っている場合、
- venvを作成した
- しかし有効化していない
という状態では、
pip install がグローバル環境に入ってしまいます。
その結果、
仮想環境で実行すると import できません。
確認ポイント:
- ターミナルに
(venv)が表示されているか - 有効化してからpip installしているか
原因④ requirements.txtを使っている
チーム作業や学習教材でよくあるのが、requirements.txt を使ったインストールです。
pip install -r requirements.txt
このときも、
- 実行Python
- pip
- 仮想環境
がズレていると、
ライブラリが見えない状態になります。
よくある勘違い
「ライブラリは入っているのにimportできない」とき、
次のような誤解が多いです。
- pip install が成功=必ず使える
- Pythonは1つしかないと思っている
- 仮想環境は自動で切り替わると思っている
実際には、
Pythonの実行環境がズレているだけ
というケースがほとんどです。
まず確認すべきチェックリスト
importできない場合は、
次の順で確認してください。
python3 --versionpip3 --version- VS Codeで選択されているPython
- 仮想環境が有効化されているか
この順番で見れば、
ほぼ確実に原因が特定できます。
まとめ
Pythonでライブラリは入っているのに
importできない場合、原因は次のいずれかです。
- pipとPythonが別の環境を指している
- VS Codeで別Pythonが選択されている
- 仮想環境が有効化されていない
- requirements.txt利用時に環境がズレている
エラーそのものより、
実行環境のズレを疑うことが重要です。
コメントを残す