Jupyter Lab и проблема с ноутбуком: ошибка ядра - PullRequest
0 голосов
/ 19 октября 2019

Похоже, что одно из моих ядер удалено. И, возможно, именно поэтому я получаю эту ошибку. Как я мог это исправить? Могу ли я переустановить что-либо (ядро в базовом окружении возможно)?

Если лучшего варианта нет, я бы попытался переустановить anaconda в качестве крайней меры в соответствии с: По умолчаниюЯдро в блокноте Jupyter (Python3) не работает .

enter image description here

Я попытался использовать следующее:

  1. Установка Jupyter Lab: requirements already satisfied
  2. Ядра не отображаются при запуске "jupyter lab"
  3. UI говорит "Нет ядра ", хотя у меня определенно есть одно
  4. Получение ошибки ядра при запуске Jupyter Notebook в Python3
  5. https://ipython.readthedocs.io/en/latest/install/kernel_install.html
  6. https://medium.com/flatiron-engineering/recovering-from-a-jupyter-disaster-27401677aeeb

Текущий список ядер

jupyter kernelspec list

Вывод:

Available kernels:
  python3    C:\Users\raysu\AppData\Roaming\jupyter\kernels\python3
  vpython    C:\ProgramData\jupyter\kernels\vpython

Но у меня должно быть другое ядро ​​(которое я полагаю как-тобыл удален) связан с моей базовой средой.

C:\Users\raysu\Documents>conda env list
# conda environments:
#
base                  *  C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64
astra_env                C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\envs\astra_env
bokeh_env                C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\envs\bokeh_env
sound_env                C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\envs\sound_env
tf_env                   C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\envs\tf_env
                         C:\Users\raysu\Anaconda3
                         C:\Users\raysu\Anaconda3\envs\pyforge
opencv_env               C:\Users\raysu\AppData\Local\conda\conda\envs\opencv_env
test_env                 C:\Users\raysu\AppData\Local\conda\conda\envs\test_env

Ошибка

Traceback (most recent call last):
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\tornado\web.py", line 1699, in _execute
    result = await result
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\tornado\gen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\notebook\services\sessions\handlers.py", line 72, in post
    type=mtype))
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\tornado\gen.py", line 735, in run
    value = future.result()
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\tornado\gen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\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 "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\tornado\gen.py", line 735, in run
    value = future.result()
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\tornado\gen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\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 "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\tornado\gen.py", line 735, in run
    value = future.result()
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\tornado\gen.py", line 209, in wrapper
    yielded = next(result)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\site-packages\notebook\services\kernels\kernelmanager.py", line 168, in start_kernel
    super(MappingKernelManager, self).start_kernel(**kwargs)
  File "C:\Users\raysu\AppData\Roaming\Python\Python36\site-packages\jupyter_client\multikernelmanager.py", line 110, in start_kernel
    km.start_kernel(**kwargs)
  File "C:\Users\raysu\AppData\Roaming\Python\Python36\site-packages\jupyter_client\manager.py", line 240, in start_kernel
    self.write_connection_file()
  File "C:\Users\raysu\AppData\Roaming\Python\Python36\site-packages\jupyter_client\connect.py", line 476, in write_connection_file
    kernel_name=self.kernel_name
  File "C:\Users\raysu\AppData\Roaming\Python\Python36\site-packages\jupyter_client\connect.py", line 141, in write_connection_file
    with secure_write(fname) as f:
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "C:\Users\raysu\AppData\Roaming\Python\Python36\site-packages\jupyter_core\paths.py", line 404, in secure_write
    win32_restrict_file_to_user(fname)
  File "C:\Users\raysu\AppData\Roaming\Python\Python36\site-packages\jupyter_core\paths.py", line 359, in win32_restrict_file_to_user
    import win32api
ImportError: DLL load failed: The specified procedure could not be found.

Ответы [ 2 ]

1 голос
/ 22 октября 2019

Решил проблему путем редактирования соответствующего файла kernelspec: kernel.json после новой установки Anaconda.

Подробное решение

Как сообщалось ранее, я обнаружил, что у меня было два kernelspecs. (команда: jupyter kernelspec list)

  1. python3: C:\Users\raysu\AppData\Roaming\jupyter\kernels\python3
  2. vpython: C:\ProgramData\jupyter\kernels\vpython

kernelspec является .jsonфайл, который содержит спецификации ядра для jupyter-notebook / lab для запуска определенного ядра. К счастью, ядро ​​vpython работало, и это помогло мне сузить источник проблемы, находящейся внутри kernelpsec: python3. Мне пришлось исправить путь к исполняемому файлу Python (python.exe), и это решило проблему.

Я хотел бы отметить, что в этом случае пригодились следующие два ресурса. Я получил больше ясности в том, где может быть проблема, после того как я увидел типичную структуру документа kernelspec.

Примечание: Однако, так как я не могуЧтобы проверить эту теорию, я бы попросил любого, кто сталкивался с подобной проблемой, сначала сделать копию старого файла kernel.json, а затем обновить путь до файла python.exe. Если это устранит ошибку ядра , то переустановка Anaconda вообще может не потребоваться.

Короче говоря:

Если среда jupyter notebook / lab показывает вам ошибка ядра , скорее всего, источник проблемы находится внутри файла спецификации ядра: kernel.json и путь к python.exe неверно. Это может быть более вероятным сценарием, если тот же kernel error сохраняется даже после новой переустановки anaconda / jupyter-notebook / lab.

Например, в моем случае python3-kernelspec был расположен по адресу:

"C:\Users\raysu\AppData\Roaming\jupyter\kernels\python3"

А python.exe был расположен по адресу:

"C:\Users\raysu\Anaconda3\python.exe"

Однако,путь к python-исполняемому файлу был неправильным: он все еще показывал путь из старой установки. И после переустановки анаконды этот путь изменился. Поэтому мне пришлось обновить спецификацию ядра для python3, отредактировав файл kernel.json.

# kernel.json file
{
 "argv": [
  "C:\\Users\\raysu\\Anaconda3\\python.exe",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3",
 "language": "python"
}

Если это не решит вашу проблему, обратитесь к следующим двум документам. Я потратил 4 дня из-за этого. Надеюсь, этот ответ поможет кому-то в будущем.

Что пригодилось?

  1. https://jupyter -notebook.readthedocs.io / en / stable / Troubleshooting.html
  2. https://jupyter -client.readthedocs.io / en / stable / kernels.html
0 голосов
/ 27 октября 2019

Я смог решить проблему здесь

Я установил jupyter_client 5.3.4 и jupyter_core 4.6.0 с помощью этой команды

pip install jupyter_client --upgrade
...