ライブラリがインポートできない。そんな時のpathの確認と指定方法

python

pythonの環境構築の基本の🌲。

以前同じトラブルに遭い再び遭遇し、解決に小一時間もかけてしまったので、備忘録として残しときます。

ライブラリがインポートできない

venvで仮想環境を作り必要なライブラリをインストールして、jupyterlabで動作確認しようとしたところ、

ModuleNotFoundError: No module named 'pandas'

の文字が。インストールはしたし、site-packegesフォルダにもしっかりpandasがインストールされている。

しかし

!which pandas

で確認してみるとpandas not foundとなってしまう。過去の記憶からこれはパスが仮想環境内のsite-packegesに紐づけられていない。

だったらpathを通せばいいんだと色々調べるがどうもどの方法が一番合うのかわからない。

解決した方法

時間が解決してくれた笑。

import sys
import pprint

pprint.pprint(sys.path)

でpathを確認した結果

['/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python39.zip',
 '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9',
 '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/lib-dynload',
 '',
 '/Users/tom/arrival/venv/lib/python3.9/site-packages']

となっている(解決後)。

これが、

['/Users/tom/arrival',
 '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python39.zip',
 '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9',
 '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/lib-dynload',
 '',
 '/Users/tom/Library/Python/3.9/lib/python/site-packages',
 '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages']

となっており、赤線部のvenv下のライブラリが紐づけられていないのが原因だったとわかった。

ただ、これがなぜ1時間ほど経つと自然とvenv下のpathを通したのかは謎のまま。仮想環境作った直後は認識するための時間が必要ということだろうか?

他の解決法

もし次に同じトラブル、そして時間が解決してくれなかった時は、ターミナル上で

$ export PYTHONPATH="検索パスの一覧に追加したいパス"

を実行でpathを通してくれるそう。

一つレベルアップしました。

それでは。

タイトルとURLをコピーしました