星期日, 11月 06, 2022

Jupyter notebook module 找不到除錯

參考文章連結 

今天玩 python NLP 遇到鬼打牆現象:明明已經 !pip install spacy 但 jupyter 執行 import spacy 一直說 module not found。 排查後才發現是 jupyter kernel 的問題。我 docker container 原本就自帶 python 3.7,apt-get install 又自己裝了一套 python 3.9 並只認自帶的版本,兩者各自獨立,前者裝的 package 後者找不到。 

後來 Dockerfile 做了些設定

apt-get install jupyter-client
pip install ipykernel
python -m ipykernel install --user

其中裝 jupyter-client 是為了能執行 jupyter kernelspec list。後兩者則是讓 jupyter 認我裝的 python 而非 jupyter 自帶的。Dockerfile 改好後 rebuild 問題解決。

全文連結

Docker network interface 好文

出處

太久沒玩 docker 又犯了小白錯誤。

在 container 裡面裝了 jupyter-notebook,結果在 container 裡面 wget 連的到。但切回 host 和外部環境就連不上。docker file EXPOSE 有開 port,docker run port 有 forward 但就是莫名 connection refused。

後來搜尋後才發現這是典型錯誤。jupyter-notebook bind 的 127.0.0.1 屬於自己 network namespace,我的 127.0.0.1 不是你的 127.0.0.1。後來加個 -ip="*" 廣開 binding 解決。

全文連結