Search code examples
ipythonapache-zeppelin

Apache Zeppelin 0.10.1 IPython not starting : jupyter-client is not installed


I have setup Apache Zeppelin 0.10.0 following https://zeppelin.apache.org/docs/0.10.0/quickstart/install.html on Ubuntu 22.04.1 LTS.

I have a running vanilla python interpreter setup. Python is from a conda virtual environment which was installed with:

sudo /opt/conda/bin/conda create --prefix /opt/conda/envs/python3 python=3.9

The zeppelin.python property points to /opt/conda/envs/python3/bin/python3.

I am now trying to setup the recommended IPython interpreter.

According https://zeppelin.apache.org/docs/0.10.0/interpreter/python.html#ipython-interpreter-pythonipython-recommended I installed the following packages in my conda environment:

sudo /opt/conda/envs/python3/bin/pip install jupyter
sudo /opt/conda/envs/python3/bin/pip install grpcio
sudo /opt/conda/envs/python3/bin/pip install protobuf

However, when I invoke the IPython interpreter in Zeppelin I get this error:

org.apache.zeppelin.interpreter.InterpreterException: org.apache.zeppelin.interpreter.InterpreterException: Fail to open JupyterKernelInterpreter:
org.apache.zeppelin.interpreter.InterpreterException: Kernel prerequisite is not meet: jupyter-client is not installed, installed packages:
anyio==3.6.2
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
asttokens==2.0.8
attrs==22.1.0
backcall==0.2.0
beautifulsoup4==4.11.1
bleach==5.0.1
certifi @ file:///croot/certifi_1665076670883/work/certifi
cffi==1.15.1
debugpy==1.6.3
decorator==5.1.1
defusedxml==0.7.1
entrypoints==0.4
executing==1.1.1
fastjsonschema==2.16.2
grpcio==1.50.0
idna==3.4
importlib-metadata==5.0.0
ipykernel==6.16.2
ipython==8.5.0
ipython-genutils==0.2.0
ipywidgets==8.0.2
jedi==0.18.1
Jinja2==3.1.2
jsonschema==4.16.0
jupyter==1.0.0
jupyter-console==6.4.4
jupyter-server==1.21.0
jupyter_client==7.4.4
jupyter_core==4.11.2
jupyterlab-pygments==0.2.2
jupyterlab-widgets==3.0.3
MarkupSafe==2.1.1
matplotlib-inline==0.1.6
mistune==2.0.4
nbclassic==0.4.5
nbclient==0.7.0
nbconvert==7.2.2
nbformat==5.7.0
nest-asyncio==1.5.6
notebook==6.5.1
notebook_shim==0.2.0
packaging==21.3
pandocfilters==1.5.0
parso==0.8.3
pexpect==4.8.0
pickleshare==0.7.5
prometheus-client==0.15.0
prompt-toolkit==3.0.31
protobuf==4.21.9
psutil==5.9.3
ptyprocess==0.7.0
pure-eval==0.2.2
pycparser==2.21
Pygments==2.13.0
pyparsing==3.0.9
pyrsistent==0.18.1
python-dateutil==2.8.2
pyzmq==24.0.1
qtconsole==5.3.2
QtPy==2.2.1
Send2Trash==1.8.0
six==1.16.0
sniffio==1.3.0
soupsieve==2.3.2.post1
stack-data==0.5.1
terminado==0.17.0
tinycss2==1.2.1
tornado==6.2
traitlets==5.5.0
wcwidth==0.2.5
webencodings==0.5.1
websocket-client==1.4.1
widgetsnbextension==4.0.3
zipp==3.10.0

I tried as well the same procedure with python version 3.7 without any success (same error resulted).

I do not understand the error message, as it seems to me that jupyter-client is installed.

Any hint to what could be the reason for this error is more than welcome.


Solution

  • Following the answer of Chao Wang, I found the issue ZEPPELIN-5810 which noted that the package name jupyter-client has been changed to jupyter_client in newer versions. The issue was addressed and implemented in the source code on Sep 12, 2022.

    The currently latest Apache Zeppelin binary version 0.10.1 is from Feb 29, 2022 and will not contain the fix.

    I used the following workaround to setup my conda environment for python:

    1. Create the virtual environment:
    sudo /opt/conda/bin/conda create --prefix /opt/conda/envs/python3 python=3.7.10
    
    1. Add the following python packages to it (in this order):
    sudo /opt/conda/envs/python3/bin/pip install matplotlib==3.4.3
    sudo /opt/conda/envs/python3/bin/pip install jupyter-client==6.1.12
    sudo /opt/conda/envs/python3/bin/pip install grpcio==1.38.1
    sudo /opt/conda/envs/python3/bin/pip install protobuf==3.16.0
    sudo /opt/conda/envs/python3/bin/pip install ipython==7.26.0
    sudo /opt/conda/envs/python3/bin/pip install ipykernel==6.2.0
    sudo /opt/conda/envs/python3/bin/pip install ipython-genutils==0.2.0
    
    1. Make sure that the zeppelin.python property points to /opt/conda/envs/python3/bin/python3.
    2. Restart your python interpreter binding.