ob-ipython icon indicating copy to clipboard operation
ob-ipython copied to clipboard

Ubuntu 16.04 ImportError: No module named 'jupyter_client'

Open ouboub opened this issue 6 years ago • 6 comments

Hi

I am running Ubuntu 16.04, upgraded to pip 9.03 (because pip 10 has a bug), running emacs git master from June.

I installed your package via melpa, then I installed, via pip, the matlab kernel and the jupyter client. Both are in /usr/local/lib/python2.7/dist-packages


  drwxrwsr-x 40 root staff 4.0K Jul  2 11:26 .
  drwxr-sr-x  2 root staff 4.0K Jul  2 11:26 matlab_kernel
  drwxr-sr-x  2 root staff 4.0K Jul  2 11:26 matlab_kernel-0.15.1.dist-info
  drwxr-sr-x  6 root staff 4.0K Jul  2 11:26 metakernel
  drwxr-sr-x  2 root staff 4.0K Jul  2 11:26 metakernel-0.20.14.dist-info
  drwxr-sr-x  2 root staff 4.0K Jul  2 11:26 ipykernel-4.8.2.dist-info
  drwxr-sr-x  8 root staff 4.0K Jul  2 11:26 ipykernel
  -rw-r--r--  1 root staff  552 Jul  2 11:26 ipykernel_launcher.pyc
  drwxr-sr-x  2 root staff 4.0K Jul  2 11:26 ipython-5.7.0.dist-info
  drwxr-sr-x 11 root staff 4.0K Jul  2 11:26 IPython
  drwxr-sr-x  5 root staff 4.0K Jul  2 11:26 jupyter_client
  drwxr-sr-x  2 root staff 4.0K Jul  2 11:26 jupyter_client-5.2.3.dist-info

Now following the advice of John Kitchin, I try to execute the following code


#+BEGIN_SRC emacs-lisp
(add-to-list 'org-src-lang-modes '("matlab" . matlab))

;; set default headers for convenience
(setq org-babel-default-header-args:matlab
      '((:results . "output replace")
	(:session . "matlab")
	(:kernel . "matlab")
	(:exports . "code")
	(:cache .   "no")
	(:noweb . "no")
	(:hlines . "no")
	(:tangle . "no")))

(defalias 'org-babel-execute:matlab 'org-babel-execute:ipython)
(defalias 'org-babel-prep-session:matlab 'org-babel-prep-session:ipython)
(defalias 'org-babel-matlab-initiate-session 'org-babel-ipython-initiate-session)
#+END_SRC


#+RESULTS:
: org-babel-matlab-initiate-session

#+BEGIN_SRC matlab :results output org drawer
x = [1, 2, 3, 4, 5];
fprintf('|%d', x)
#+END_SRC

But I obtain the following error in the debug buffer


Traceback (most recent call last):
  File "/home/oub/.emacs.d/elpa/ob-ipython-20180224.153/client.py", line 1, in <module>
    import jupyter_client as client
ImportError: No module named 'jupyter_client'

I also tried the example provided in https://github.com/gregsexton/ob-ipython but the result was the same.

So how shall I modify that line in the client.py?

Thanks and regards

Uwe Brauer

ouboub avatar Jul 03 '18 06:07 ouboub

Some comments: when I run from the shell ``python client.py Traceback (most recent call last): File "client.py", line 60, in c = create_client(args.conn_file) File "client.py", line 40, in create_client if name.endswith('.json'): AttributeError: 'NoneType' object has no attribute 'endswith'

and when I run python3 client.py Traceback (most recent call last): File "client.py", line 1, in <module> import jupyter_client as client ImportError: No module named 'jupyter_client' which is the message emacs also show. It seems that pip installed jupyter in python2.7 where python3 cannot find it, while python 2.7 cannot deal with jupyter. Is this correct? any workarounds?

ouboub avatar Jul 03 '18 07:07 ouboub

Solved sort of, I had to run sudo -H python3 -m pip install jupyter which installed the jupyter for python3. So I think it is save to close the issue.

ouboub avatar Jul 03 '18 08:07 ouboub

I am still getting this error. Did not get fixed by doing what this thread recommends. Any ideas?

 File "/Users/ghamelas/.emacs.d/elpa/ob-ipython-20180224.953/client.py", line 1, in <module>
    import jupyter_client as client
ImportError: No module named jupyter_client

AtomicNess123 avatar Apr 21 '20 07:04 AtomicNess123

bump. were you able to fix this? @Gahamelas

anushkmittal avatar May 09 '20 11:05 anushkmittal

I did! Had to do with variables and different version of python. Not sure how I specifically managed to fix it, I changed many things at once, and one day I tried and it worked.

AtomicNess123 avatar May 09 '20 13:05 AtomicNess123

Function ob-ipython--get-python defines the python path. That python environment should have jupyter_client in its environment.

akshaybadola avatar Mar 12 '22 15:03 akshaybadola