I am having a problem importing modules in my iPython/Jupyter notebook. The problem fundamentally lies in where the sys.path is pointing to.
From the iPython/Jupyte
My system is Mac. I came across the same problem.
I use my anaconda python installed the packages but my jupyter notebook is not using it and cannot import the modules. I solved the problem by following steps:
I run which python
and it shows the default python I use to install packages:
➜ ~ which python
/Users/my_name/opt/anaconda3/bin/python
I run jupyter kernelspec list
, it shows 2 kernels my jupyter notebook can use:
Available kernels:
python3 /Users/my_name/Library/Jupyter/kernels/python3
python2 /usr/local/share/jupyter/kernels/python2
Since I usually use python3 in my jupyter, then I choose to edit the first kernel's configuration, run:
vi /Users/my_name/Library/Jupyter/kernels/python3/kernel.json
replace the first path as "/Users/my_name/opt/anaconda3/bin/python"
(as the which python
command shows.)
{
"argv": [
"/Users/my_name/opt/anaconda3/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "heterodimers",
"language": "python"
}
save and quit the kernel.json
file.
After that, my jupyter notebook can import the packages I installed in the terminal.
And thanks to Mike's answers because I basically followed his solution to find mine. The difference is that I did not use the conda environment.
I had the same issue. After going through many (like way too many) solutions to this issue found elsewhere, I manage to figure out a solution that at least works in my case.
Go on command line, activate the conda environment that is problematic, and check the correct executable path for the environment.
conda activate {envronment name};
then on python console,
(>>>)import sys;sys.executable
For instance on Linux it will be
/media/{username}/{path-to}/anaconda3/envs/{environment name}/bin/python
From command line, check the path where kernel.json
of your problematic conda environment is located.
jupyter kernelspec list
For instance on Linux it will be: /home/{username}/.local/share/jupyter/kernels/{environment name}
Open the kernel.json
located in that folder and replace the incorrect executable path, as shown below.
{
"argv": [
"REPLACE-THIS-WITH-THE-CORRECT-EXECUTABLE-PATH",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "heterodimers",
"language": "python"
}
Hope this works in your case too.
Open a new terminal window and see if this helps. If not, proceed with 2.
Start a standard Python session from the terminal and type this:
>>> import sys
>>> sys.executable
Do the same in the notebook:
In [1]: import sys
sys.executable
Compare the results. Hopefully, this gives you a clue what is going on.