Как запустить Jupyter Notebook в WSL с помощью PowerShell?

#bash #powershell #jupyter-notebook #windows-subsystem-for-linux #wsl-2

Вопрос:

Что я хочу сделать, так это создать ярлык для ноутбука Jupyter, который должен работать в WSL (потому что там есть все мои пакеты python). Для этого AFAIK я должен создать скрипт PowerShell, который запускает WSL с командой для запуска ноутбука Jupyter, что-то вроде этого:

 wsl -e bash -c "jupyter notebook"
 

Но эта команда дает bash: jupyter: command not found , хотя, если я сделаю это шаг за шагом, она запустит Jupyter:

 PS C:UsersArtem> wsl
(base) artem@LAPTOP-O4C3S1UK:/mnt/c/Users/Artem$ jupyter notebook
 

Все протестированные команды страдают от одной из этих проблем:

  1. bash не может найти команду (ни jupyter или anaconda )
  2. Какой-то терминал лает и мгновенно исчезает

Я недостаточно хорошо разбираюсь в сценариях PowerShell/WSL, поэтому прошу совета, как это сделать правильно.

P.S. Я думаю, что могу установить jupyter для Windows и добавить ядра из WSL, но я хочу знать, можно ли решить проблему описанным выше способом.

Ответ №1:

Похоже, что необходимые инициализации выполняются в вашем ~/.bashrc файле, который bash по умолчанию загружается только в интерактивных сеансах, а не при отправке команды для выполнения -c .

Однако вы можете явно указать bash , чтобы сеанс считался интерактивным, используя эту -i опцию.

Поэтому попробуйте следующее (обратите внимание на -i ):

 wsl -e bash -ic "jupyter notebook"
 

Комментарии:

1. Спасибо за ясное объяснение! Я проверил ~/.bashrc , есть ли какая conda -то инициализация, с помощью которой я установил Jupyter, так что в этом и была проблема.

2. Рад слышать, что это было полезно, @QuadR; мое удовольствие.

Ответ №2:

Вы можете решить ее, используя абсолютный путь юпитера. Вот как это сделать

 # this code should run in WSL
# get the absolute path of jupyter
which jupyter
# output
# /home/sheep/miniconda3/envs/flask/bin/jupyter

 

Когда вы запустите код в WSL, вы получите абсолютный путь jupyter.

Затем вы сможете подключить jupyter, запустив wsl -e bash -c "/home/sheep/miniconda3/envs/flask/bin/jupyter notebook" его в PowerShell.

Примечание: /home/sheep/miniconda3/envs/flask/bin/jupyter это абсолютный путь jupyter в моем компьютере.Вы должны заменить его своим.

Комментарии:

1. Спасибо! Это решение работает просто отлично