I am working in a virtual environment that I set up using conda. What I would like to do is open up a new Jupyter notebook and work within the notebook using this virtual environment. However, I think I am missing some sort of necessary package within my virtual environment.
When I launch Jupyter notebook from Terminal (currently using OSX 10.13.6), I can see the option to open a new notebook with the Python (virtualEnvironment) in the New button at the top right of the screen.
When I open a new notebook as Python (virtualEnvironment), everything looks good, so I try to run the following in the first cell:
import numpy as np
I get the following error message in Jupyter as a pop-up window:
Kernal restarting: The kernel appears to have died. It will restart automatically.
I know that some aspects of the Jupyter notebook are working because I can run the following in the first cell, no problem:
from IPython.display import display, Math
display(Math('\\text{This is latex formatting:} \\quad x + 2y = 3j + 4'))
Does anyone have any ideas about what might be causing the kernel to die?
Here are all of the packages in the virtual envronment:
# packages in environment at /opt/anaconda3/envs/virtualEnvironment:
#
# Name Version Build Channel
appnope 0.1.0 py37_0
attrs 19.3.0 py_0 conda-forge
backcall 0.1.0 py37_0
blas 1.0 mkl
bleach 3.1.5 pyh9f0ad1d_0 conda-forge
brotlipy 0.7.0 py37h9bfed18_1000 conda-forge
ca-certificates 2020.4.5.1 hecc5488_0 conda-forge
certifi 2020.4.5.1 py37hc8dfbb8_0 conda-forge
cffi 1.14.0 py37h356ff06_0 conda-forge
chardet 3.0.4 py37hc8dfbb8_1006 conda-forge
cryptography 2.9.2 py37he655712_0 conda-forge
decorator 4.4.2 py_0
defusedxml 0.6.0 py_0 conda-forge
entrypoints 0.3 py37_0
idna 2.9 py_1 conda-forge
importlib-metadata 1.6.0 py37hc8dfbb8_0 conda-forge
importlib_metadata 1.6.0 0 conda-forge
intel-openmp 2019.4 233
ipykernel 5.1.4 py37h39e3cac_0
ipython 7.13.0 py37h5ca1d4c_0
ipython_genutils 0.2.0 py37_0
jedi 0.17.0 py37_0
jinja2 2.11.2 pyh9f0ad1d_0 conda-forge
json5 0.9.0 py_0 conda-forge
jsonschema 3.2.0 py37hc8dfbb8_1 conda-forge
jupyter_client 6.1.3 py_0
jupyter_core 4.6.3 py37_0
jupyterlab 2.1.2 py_0 conda-forge
jupyterlab_server 1.1.1 py_0 conda-forge
libcxx 4.0.1 hcfea43d_1
libcxxabi 4.0.1 hcfea43d_1
libedit 3.1.20181209 hb402a30_0
libffi 3.2.1 h6de7cb9_1006 conda-forge
libgfortran 3.0.1 h93005f0_2
libsodium 1.0.16 h3efe00b_0
markupsafe 1.1.1 py37h9bfed18_1 conda-forge
mistune 0.8.4 py37h9bfed18_1001 conda-forge
mkl 2019.4 233
mkl-service 2.3.0 py37hfbe908c_0
mkl_fft 1.0.15 py37h5e564d8_0
mkl_random 1.1.0 py37ha771720_0
nbconvert 5.6.1 py37hc8dfbb8_1 conda-forge
nbformat 5.0.6 py_0 conda-forge
ncurses 6.2 h0a44026_1
notebook 6.0.3 py37_0 conda-forge
numpy 1.18.1 py37h7241aed_0
numpy-base 1.18.1 py37h6575580_1
openssl 1.1.1g h0b31af3_0 conda-forge
packaging 20.1 py_0 conda-forge
pandas 1.0.3 py37h6c726b0_0
pandoc 2.9.2.1 0 conda-forge
pandocfilters 1.4.2 py_1 conda-forge
parso 0.7.0 py_0
patsy 0.5.1 py37_0
pexpect 4.8.0 py37_0
pickleshare 0.7.5 py37_0
pip 20.0.2 py37_1
prometheus_client 0.7.1 py_0 conda-forge
prompt-toolkit 3.0.4 py_0
prompt_toolkit 3.0.4 0
ptyprocess 0.6.0 py37_0
pycparser 2.20 py_0 conda-forge
pygments 2.6.1 py_0
pyopenssl 19.1.0 py_1 conda-forge
pyparsing 2.4.7 pyh9f0ad1d_0 conda-forge
pyrsistent 0.16.0 py37h9bfed18_0 conda-forge
pysocks 1.7.1 py37hc8dfbb8_1 conda-forge
python 3.7.7 hc70fcce_0_cpython
python-dateutil 2.8.1 py_0
python_abi 3.7 1_cp37m conda-forge
pytz 2020.1 py_0
pyzmq 18.1.1 py37h0a44026_0
readline 8.0 h1de35cc_0
requests 2.23.0 pyh8c360ce_2 conda-forge
scipy 1.2.1 py37h1410ff5_0
send2trash 1.5.0 py_0 conda-forge
setuptools 46.1.3 py37_0
six 1.14.0 py37_0
sqlite 3.31.1 h5c1f38d_1
statsmodels 0.11.0 py37h1de35cc_0
terminado 0.8.3 py37hc8dfbb8_1 conda-forge
testpath 0.4.4 py_0 conda-forge
tk 8.6.8 ha441bb4_0
tornado 6.0.4 py37h1de35cc_1
traitlets 4.3.3 py37_0
urllib3 1.25.9 py_0 conda-forge
wcwidth 0.1.9 py_0
webencodings 0.5.1 py_1 conda-forge
wheel 0.34.2 py37_0
xz 5.2.5 h1de35cc_0
zeromq 4.3.1 h0a44026_3
zipp 3.1.0 py_0 conda-forge
zlib 1.2.11 h1de35cc_3
I previously tried to solve this problem using the answers from this question: Conda environments not showing up in Jupyter Notebook. I cannot figure out what the problem is in my current situation.
Other information that might be valuable: if I start a new Jupyter notebook in my normal environment, numpy imports just fine. This is the first moment when I have had a problem with the kernel dying. I have never built a virtual environment from scratch like this before; I installed ipython, ipykernel, and jupyter using conda via Terminal. I installed statsmodels using pip. Maybe using pip was my mistake?
Could this be a PATH issue? I had downloaded the GUI version of anaconda before. When I prompt terminal
echo $PATH
These paths are printed:
/Users/RZ/anaconda3/bin:
/opt/anaconda3/condabin:
/usr/local/bin:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/texbin:
/opt/X11/bin:
/usr/local/git/bin
More recently I have performed the following:
when I run:
jupyter nbextension list
I get this as an output:
Known nbextensions:
config dir: /Users/Rentazilla/anaconda3/etc/jupyter/nbconfig
tree section
nb_conda/tree disabled
Is this the issue? maybe nb_conda/tree was disabled incorrectly. According to at least one link on the Jupyter notebook github (https://github.com/jupyter/notebook/issues/1716) both nbextension list and serverextension should be disabled.
5/14/20
All right, so after many hours of trying a million different things, I came up with a solution that is working but I don't think its very pretty.
Not sure what to do yesterday, I decided to uninstall and reinstall conda. I used the full method detailed at https://docs.anaconda.com/anaconda/install/uninstall/ and uninstalled all anaconda3 folders and reinstalled conda using the latest miniconda installer.
Then I made a new conda environment:
conda create -n py3 ipykernel ipython jupyter_client jupyter_core traitlets ipython_genutils
Next I installed nb_conda_kernels
in the base environment. Then I proceeded to install numpy, sympy, matplotlib, stats models, and jupyter_lab in the py3
environment.
I noticed that jupyter still sees some old environments as kernels; I need to get rid of them. For now I am only keeping the base environment and the py3
environment
I noticed that jupyter was using the wrong path for its kernels so I changed that
This did not fix the issue. I down graded python to 3.7.7 on the base and py3 environments. That did not fix the issue either. So I tried running some basic commands in python using the terminal. I found that running import numpy
caused python to crash and gave the output Illegal Instruction: 4
. Some searching online led me to this page:
I decided to try and downgrade numpy as well: conda install -n py3 numpy=1.17
I decided to test a file named test1.py using python via Terminal containing the following script:
num = int(input("Enter a number: "))
import numpy as np
print(num)
import sys
print(sys.version)
which I copied down based on the answer in the previous link. This ran just fine. Running with:
python -u -m trace -t test1.py
however in the terminal gave a ridiculously long stream of information.
Downgrading numpy to 1.18.5 solved the problem, at least for now.