"jupyter-kernelspe c" не найден при установке iqsharp, однако он существует в PATH - PullRequest
0 голосов
/ 08 апреля 2020

При установке QDK для использования с python, как описано в этом руководстве , при выполнении dotnet iqsharp install я получаю следующее исключение

Traceback (most recent call last):
  File "c:\users\hp\appdata\local\programs\python\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\users\hp\appdata\local\programs\python\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\hp\AppData\Local\Programs\Python\Python36\Scripts\jupyter.exe\__main__.py", line 7, in <module>
  File "c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\jupyter_core\command.py", line 247, in main
    command = _jupyter_abspath(subcommand)
  File "c:\users\hp\appdata\local\programs\python\python36\lib\site-packages\jupyter_core\command.py", line 134, in _jupyter_abspath
    'Jupyter command `{}` not found.'.format(jupyter_subcommand)
Exception: Jupyter command `jupyter-kernelspec` not found.

Однако, когда я запускаю jupyter-kernelspec команда на cmd найдена на PATH. Почему python не может найти команду, если cmd может ее найти?

1 Ответ

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

Чтобы ответить на ваш конкретный c вопрос, вы можете увидеть, может ли Python найти jupyter-kernelspe c (и если да, где), запустив что-то вроде:

python -c "from shutil import which; print(which('jupyter-kernelspec'))"

Но как к основной причине ошибки, вероятно, что ваша установка Jupyter не завершена и / или ваша среда каким-то образом неправильно настроена. Вы можете попытаться создать новую среду Python (возможно, используя Anaconda , если вы новичок в разработке Python), а затем снова следовать инструкциям по установке QDK из этой новой среды (например, из командной строки Anaconda с новой активной средой).

Редактировать: Из комментариев ниже кажется, что проблема заключается в том, что в переменной окружения PATHEXT есть конечная точка с запятой. Это смущает shutil.which(), и это, в свою очередь, мешает Jupyter найти необходимый исполняемый файл. (Я могу воспроизвести эту проблему локально, добавив конечную точку с запятой в PATHEXT.)

Исправление должно быть просто удалить конечную точку с запятой из PATHEXT.

...