Jupyterからいれたはずのモジュールが使えないときの解決策

PyTorchをJupyterから使おうとしたものの、下記のようなエラーが出てしまう。

import torch

ImportError: No module named torch

ただ、PyTorch自体はインストールしたし、Pythonコンソールからは使える。

# python
Python 3.7.9 (default, Aug 31 2020, 12:42:55) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> 

原因としては、JupyterとPythonコンソールで使用しているPythonが違うこと。Condaなどの仮想環境で起こる。なので、使いたいPythonで起動する。例えばConda仮想環境だと、仮想環境に入った後に、下記のように起動。

# python -m jupyter notebook --ip=* --allow-root&

psコマンドで確認してみると、ちゃんとつかいたいpythonで起動している。(上が失敗、下が成功)

# ps -aux |grep jupyter
root        3748  0.3  0.1 315104 50596 pts/0    Sl   12:54   0:00 /usr/bin/python3 /usr/bin/jupyter-notebook --ip=* --allow-root
root        3786  2.1  0.1 234444 64452 pts/0    Sl   12:57   0:01 /opt/conda/bin/python /opt/conda/bin/jupyter-notebook --ip=* --allow-root