Это буквально сводит меня с ума.
Я установил Python3 .8 на macOS и использовал python3 -m install ipykernel
, чтобы заставить Jupyter использовать эту новую версию.
Однако теперь я полностью удалил Python3 .8 из системы, переустановил Python3 .7 и хочу пока придерживаться его.
Несмотря на тщательное удаление, удаление, удаление любого модуля Jupyter / Notebook / Ipykernel, а затем повторное -установив их под Python3 .7 pip3
, ничего не получится: Jupyter все равно будет искать (отсутствующую) Python@3.8 установку.
Это то, что отображается в журналах при открытии ноутбука и попытка запустить ядро:
[E 13:25:29.942 NotebookApp] Failed to run command:
['/usr/local/opt/python@3.8/bin/python3.8', '-m', 'ipykernel_launcher', '-f', '/Users/jivan/Library/Jupyter/runtime/kernel-fe88c716-f146-4328-b1f7-6199f2b44d12.json']
PATH='/Users/jivan/.cargo/bin:/Users/jivan/.cargo/bin:/usr/local/sbin:/Users/jivan/google-cloud-sdk/bin:/Users/jivan/.cargo/bin:/Users/jivan/.local/bin:/usr/local/sbin:/Users/jivan/bin:/usr/local/bin:/Users/jivan/.cargo/bin:/usr/local/opt/python@3.8/bin:/Users/jivan/.cargo/bin:/Users/jivan/.cargo/bin:/usr/local/sbin:/Users/jivan/google-cloud-sdk/bin:/Users/jivan/.cargo/bin:/Users/jivan/.local/bin:/usr/local/sbin:/Users/jivan/bin:/usr/local/bin:/Users/jivan/.cargo/bin:/Users/jivan/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Library/Apple/bin:/opt/X11/bin'
with kwargs:
{'stdin': -1, 'stdout': None, 'stderr': None, 'cwd': '/Users/jivan/Downloads/dresses', 'start_new_session': True}
Строка /usr/local/opt/python@3.8/bin/python3.8
относится к удаленной установке Python3 .8, которая теперь удалена, и я хотел бы заставить Jupyter указывать на исполняемый файл Python3 .7.
Примечание: когда я набираю python3
в терминале, он указывает на версию 3.7:
$ python3
Python 3.7.6 (default, Feb 11 2020, 07:50:21)
[Clang 11.0.0 (clang-1100.0.33.17)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Есть ли файл конфигурации, который не был удален во время удаления, и который я должен изменить? Я предполагаю, что какой-то конфигурационный файл где-то указывает жестко закодированный /usr/local/opt/python@3.8/bin/python3.8
, и Jupyter читает этот файл, но это всего лишь гипотеза. До сих пор я не смог найти ни одного файла, содержащего этот текст, в системе.
ОБНОВЛЕНИЕ
Часть трассировки показывает следующие строки, которые приводят меня думать, что Jupyter по праву запускается с Python3 .7, но затем по какой-то причине пытается запустить подпроцесс с Python3 .8. Странно.
File "/usr/local/lib/python3.7/site-packages/jupyter_client/manager.py", line 204, in _launch_kernel
return launch_kernel(kernel_cmd, **kw)
File "/usr/local/lib/python3.7/site-packages/jupyter_client/launcher.py", line 138, in launch_kernel
proc = Popen(cmd, **kwargs)
File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 800, in __init__
restore_signals, start_new_session)
File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/opt/python@3.8/bin/python3.8': '/usr/local/opt/python@3.8/bin/python3.8'