Ошибка в Jupyter Notebook: в чем может быть причина? - PullRequest
0 голосов
/ 09 апреля 2020

Недавно я обновил R n Jupyter Lab домашним пивом. Сегодня я удивлен, что R не удалось запустить на ноутбуке i python с ошибкой ниже:

Error Starting Kernel
Traceback (most recent call last):
  File "/opt/anaconda3/lib/python3.7/site-packages/tornado/web.py", line 1699, in _execute
    result = await result
  File "/opt/anaconda3/lib/python3.7/site-packages/tornado/gen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "/opt/anaconda3/lib/python3.7/site-packages/notebook/services/sessions/handlers.py", line 72, in post
    type=mtype))
  File "/opt/anaconda3/lib/python3.7/site-packages/tornado/gen.py", line 735, in run
    value = future.result()
  File "/opt/anaconda3/lib/python3.7/site-packages/tornado/gen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "/opt/anaconda3/lib/python3.7/site-packages/notebook/services/sessions/sessionmanager.py", line 88, in create_session
    kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name)
  File "/opt/anaconda3/lib/python3.7/site-packages/tornado/gen.py", line 735, in run
    value = future.result()
  File "/opt/anaconda3/lib/python3.7/site-packages/tornado/gen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "/opt/anaconda3/lib/python3.7/site-packages/notebook/services/sessions/sessionmanager.py", line 101, in start_kernel_for_session
    self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name)
  File "/opt/anaconda3/lib/python3.7/site-packages/tornado/gen.py", line 735, in run
    value = future.result()
  File "/opt/anaconda3/lib/python3.7/site-packages/tornado/gen.py", line 209, in wrapper
    yielded = next(result)
  File "/opt/anaconda3/lib/python3.7/site-packages/notebook/services/kernels/kernelmanager.py", line 168, in start_kernel
    super(MappingKernelManager, self).start_kernel(**kwargs)
  File "/opt/anaconda3/lib/python3.7/site-packages/jupyter_client/multikernelmanager.py", line 110, in start_kernel
    km.start_kernel(**kwargs)
  File "/opt/anaconda3/lib/python3.7/site-packages/jupyter_client/manager.py", line 259, in start_kernel
    **kw)
  File "/opt/anaconda3/lib/python3.7/site-packages/jupyter_client/manager.py", line 204, in _launch_kernel
    return launch_kernel(kernel_cmd, **kw)
  File "/opt/anaconda3/lib/python3.7/site-packages/jupyter_client/launcher.py", line 138, in launch_kernel
    proc = Popen(cmd, **kwargs)
  File "/opt/anaconda3/lib/python3.7/subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "/opt/anaconda3/lib/python3.7/subprocess.py", line 1522, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/Cellar/r/3.5.3/lib/R/bin/R': '/usr/local/Cellar/r/3.5.3/lib/R/bin/R'

Благодарим вас за совет.

1 Ответ

0 голосов
/ 09 апреля 2020

Интересная часть ошибки:

FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/Cellar/r/3.5.3/lib/R/bin/R': '/usr/local/Cellar/r/3.5.3/lib/R/bin/R'

Я думаю, вы, ядро ​​Jupyter, ссылаетесь на старую установку R, которую вы обновили. Первое, что нужно сделать, это проверить, что определено в вашем ядре R.

Проверить ядро ​​

# list all kernel
jupyter kernelspec list

#Available kernels:
#  ir           /opt/conda/share/jupyter/kernels/ir
# ...

У вас должно быть ядро ​​ir. Проверьте содержание определения ядра, например:

$ cat /opt/conda/share/jupyter/kernels/ir/kernel.json 

# {"argv": ["R", "--slave", "-e", "IRkernel::main()", "--args", "{connection_file}"],
# "display_name":"R",
# "language":"R"
# }

Если команда в argv неверна, вы можете удалить переустановить ядро.

Удалить и переустановить ядро ​​

Дополнительную информацию см. В документации по установке IRkernel .

$ jupyter kernelspec remove ir
$ R
# Install IRkernel
> install.packages('IRkernel')
# Or update it if already installed
> update.packages('IRkernel')
# Install the kernel
> IRkernel::installspec()
# Or alternatively if you want to install it system-wide
> IRkernel::installspec(user = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...