【问题标题】:How do I launch Jupyter Notebook in WSL using PowerShell?如何使用 PowerShell 在 WSL 中启动 Jupyter Notebook?
【发布时间】:2021-09-21 11:22:31
【问题描述】:

我想做的是为必须在 WSL 中运行的 Jupyter Notebook 创建一个快捷方式(因为我所有的 python 包都在那里)。对于这个 AFAIK,我应该创建 PowerShell 脚本,该脚本运行 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 脚本编写不够精通,因此请教如何正确执行此操作。

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

【问题讨论】:

    标签: bash powershell jupyter-notebook windows-subsystem-for-linux wsl-2


    【解决方案1】:

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

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

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

    wsl -e bash -ic "jupyter notebook"
    

    【讨论】:

    • 感谢您的清晰解释!我检查了~/.bashrc,有一些conda 初始化,通过它我安装了Jupyter,所以这就是问题所在。
    • 很高兴听到它有帮助,@QuadR;我的荣幸。
    【解决方案2】:

    可以使用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 的绝对路径。

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

    注意:/home/sheep/miniconda3/envs/flask/bin/jupyter是我电脑中jupyter的绝对路径,你应该用你的替换它。

    【讨论】:

    • 谢谢!这个解决方案效果很好
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 2019-08-13
    • 2022-08-24
    • 1970-01-01
    • 2015-07-05
    • 2023-02-06
    • 2021-11-23
    • 2023-01-15
    相关资源
    最近更新 更多