TL;DR
cd /home/user/work_dir/
python3 -m venv venv_name
...etc...
docker run -d -v `pwd`:/WORK_DIR…
docker exec -it xxxx bash
していたのが原因
python3 -m venv venv_name
source venv_name/bin/activate
# 参照が書き換わっているかちゃんと確認
which python3
pip install ipython
ipython kernel install --user --name=venv_name --display-name=foobar_name
kernelがきりかわらんっ!!って1時間ぐらい無駄にしました。
二度と同じバカをしないように…
原因
nvidia-docker 上にローカルフォルダをマウントし、jupyter入れて開発していた。
コンテナの外でvenv作ってコンテナ内で使っていたから。同じファイル・フォルダを示すパスが違う。
/home/user/work_dir/venv_name # 作ったとき
/WORK/venv_name/ # venvに入りたかった時
activate時、$PATHに入るべきパスが適切ではなく、その環境のpythonを見つけられていなかった。
蛇: スクリプトがベタで書いてある
$ cat venv/bin/activate
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
deactivate () {
# reset old environment variables
...etc...
VIRTUAL_ENV="/home/user/work_dir/venv_name"
...