Команды Jupyter работают только с тире (например, jupyter-kernelspec вместо jupyter kernelspec) - PullRequest
0 голосов
/ 23 мая 2018

Я использую Jupyter с Anaconda3.

Мои папки Anaconda3\ и Anaconda3\Scripts\ были добавлены в переменную %PATH%.

Даже если jupyter.exe находится в Scripts папка выше, команды, связанные с Jupyter, не работают без тире.

  • Например:

    jupyter kernelspec --version
    Error executing Jupyter command 'kernelspec': [Errno 'jupyter-kernelspec' not found] 2
    
  • Та же команда сработает тире:

    jupyter-kernelspec --version
    5.2.2
    

И то же самое относится к jupyter-notebook и т. д.

Должен ли я добавить что-нибудь еще к моему %PATH%?Я что-то упустил?

Я также открыл проблему для этого пункта на Github, но к сожалению это не привлекло внимания: https://github.com/jupyter/jupyter/issues/381

1 Ответ

0 голосов
/ 12 июля 2019

Ну, я понял, что не так.При использовании модуля 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

...