如何使用 PowerShell 在 WSL 中启动 Jupyter Notebook?

How do I launch Jupyter Notebook in WSL using PowerShell?

我想做的是为 Jupyter Notebook 创建一个快捷方式,它必须在 WSL 中 运行(因为我所有的 python 包都在那里)。对于这个 AFAIK,我应该创建 PowerShell 脚本,其中 运行s WSL 带有启动 Jupyter Notebook 的命令,如下所示:

wsl -e bash -c "jupyter notebook"

但是这个命令给出了 bash: jupyter: command not found 尽管如果我一步一步地这样做,它会启动 Jupyter:

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

所有经过测试的命令都存在以下问题之一:

  1. bash 找不到命令(jupyteranaconda
  2. 一些终端启动并立即消失

我对 PowerShell/WSL 脚本编写不够精通,因此请教如何正确编写脚本。

P.S。我想我可以为 Windows 安装 jupyter 并从 WSL 添加内核,但我想知道问题是否可以通过上述方式解决。

可以使用jupyter的绝对路径解决。 以下是如何做到这一点

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

当你运行WSL中的代码时,你会得到jupyter的绝对路径

然后,您将能够通过 运行ning wsl -e bash -c "/home/sheep/miniconda3/envs/flask/bin/jupyter notebook" 在 PowerShell 中启动 jupyter。

注意:/home/sheep/miniconda3/envs/flask/bin/jupyter是我的jupyter的绝对路径computer.You应该换成你的

听起来需要的初始化是在您的 ~/.bashrc 文件中执行的,默认情况下 bash 仅在 interactive 会话中加载,而不是在您提交使用 -c.

执行的命令

但是,您可以使用 -i 选项明确告诉 bash 考虑交互式会话。

因此,请尝试以下操作(注意 -i):

wsl -e bash -ic "jupyter notebook"