pythonが標準で入っているmacでうっかりハマる問題。
先に結論
jupyter Notebookで動かしたいライブラリはpipではなくcondaでインストールする。
事象
jupyterでライブラリをインポートしようとしたらNo module namedのエラー。
ライブラリが見つからないのでまだインストールされていない?
ターミナルを開いて対象のライブラリをインストールしようとpipを走らせると、
親の顔より見た「Requirement already satisfied」(既にインストール済み)のメッセージが出てインストールが進まない。
(base)XXXXX ~ % pip install squarify
Requirement already satisfied: squarify in ./.pyenv/versions/3.11.0/lib/python3.11/site-packages (0.4.3)
pathを覗くと予想通り、使いたいライブラリの格納先が含まれていない。Windowsマシンならポチポチと簡単にパスを通せるが、mac環境ではちょっとめんどくさそうなのできちんとインストール問題を解決したい。
>>> import sys
>>> import pprint
>>> pprint.pprint(sys.path)
['',
'/Users/XXXXXXXX/.pyenv/versions/3.11.0/lib/python311.zip',
'/Users/XXXXXXXX/.pyenv/versions/3.11.0/lib/python3.11',
'/Users/XXXXXXXX/.pyenv/versions/3.11.0/lib/python3.11/lib-dynload',
'/Users/XXXXXXXX/.pyenv/versions/3.11.0/lib/python3.11/site-packages']
>>>
対応
Anacondaが参照しない場所にインストールされる可能性のあるpipではなく、Anacondaで使う場所にインストールしてくれるcondaでinstallする。
(base) XXXXXXXMacBook-Air ~ % conda install squarify
うまくインストールされたっぽい。
The following packages will be downloaded:
package | build
---------------------------|-----------------
squarify-0.4.3 | py_0 7 KB conda-forge
------------------------------------------------------------
Total: 7 KB
The following NEW packages will be INSTALLED:
squarify conda-forge/noarch::squarify-0.4.3-py_0
Proceed ([y]/n)? y
Downloading and Extracting Packages
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
jupyter Notebook側で再度インポートすると、今度はエラー無くインポートできた。
以上