Ну, я понял, что не так.При использовании модуля shutil
в некоторых версиях Windows which('jupyter-kernelspec')
возвращает None
из-за отсутствия .exe
, хотя переменная окружения PATHEXT
содержит как .exe
, так и .EXE
.
(Похоже, это связано с тем, что shutil.which () не может найти программы без добавления расширения файла , хотя я не уверен, потому что which(jupyter-kernelespec.EXE)
с использованием shutil
отлично работает для меня ...)
Итак, нужно добавить .exe
к аргументу jupyter
следующим образом:
jupyter kernelspec.exe list
Поскольку этот вид команды используется большинством установщиков ядра Jupyter, вы не будетевсегда быть в состоянии отладить и проверить, где вам нужно добавить его.Исправление состоит в добавлении этого:
if cmd[-4:] != '.exe':
cmd = cmd + '.exe'
прямо перед этой строкой: https://github.com/jupyter/jupyter_core/blob/f1e18b8a52cd526c0cd1402b6041778dd60f20dc/jupyter_core/command.py#L102
Я постараюсь поднять эту точку с помощью shutil
сотрудников модуля.
Я также обновил проблему github и закрыл ее.https://github.com/jupyter/jupyter/issues/381