我想在 WSL 2 中运行的 VS Code 中使用 Jupyter Notebook。常规 Python 在 WSL 中工作没有问题,这意味着基本 conda 环境已连接,我可以运行 .py 文件。此外,我可以运行命令
jupyter notebook
,它将在 WSL 中启动笔记本服务器,将本地主机暴露给 Windows 系统。
但是,我想在 VS Code 中测试新的 Jupyter Notebook 功能,这对我来说不起作用; VS Code 显示:
Jupyter Server: No Kernel
和 Python: Not Started
(参见下面的屏幕截图)。
我的测试机是:
我做了什么:
code .
)Python: Create New Blank Jupyter Notebook
print("test")
我有什么遗漏的吗?
windows端和WSL端的VSCode扩展是相互独立的,需要在WSL端安装python扩展。
当您在 WSL 端运行 .py 文件时,VSCode 会提示您安装它们,但运行 .ipynb 则不会。这可能就是问题的根源。
VS Code 内部人士 实际上可以在 Jupyter 笔记本上开箱即用。只需记住运行
code-insiders .
而不是 code .
。
另一种解决方案是,根据此网站,在 Windows 中启动 VS Code,然后使用 WSL 2 作为远程服务器。
wsl2 上的代码安装需要重新启动才能正常工作,通知告诉我,在问题的评论中,您可能会看到人们遇到同样的问题(“它现在正在工作。不确定为什么”)。因此,在寻找任何复杂的解决方案之前,只需重新启动代码即可。
所以我很挣扎并找到了以下解决方案: 如果您使用的是Python3.11,那么使用以下命令:
python3.11 -m pip install --upgrade psutil
python3.11 -m pip install ipykernel
python3.11 -m ipykernel install --user --name=python3.11
我在使用 Python3.10、Python3.9 时也遇到了问题,我只是用它们全部运行这些命令。
现在我可以在 VS-code 中使用 jupyter Notebook,尤其是在 WSL 中。