如果没有自动连接,如何将 Jupyter 内核连接到 VS Code?

Posted

技术标签:

【中文标题】如果没有自动连接,如何将 Jupyter 内核连接到 VS Code?【英文标题】:How does one connect a Jupyter Kernel to VS Code if one does not connect automatically? 【发布时间】:2020-05-09 02:13:48 【问题描述】:

我希望能够有一个开箱即用的适用于 VS 代码的工作 jupyter 笔记本,而我的工作量最少。

我尝试打开一个 jupyter 笔记本。我立即找到了解释器并将我的 conda env 与命令颗粒一起使用(command + shift + P 然后在下拉菜单中找到了我的 conda env)。这似乎使终端工作,因为 python 指向正确的位置:

(automl-meta-learning) brandomiranda~/automl-meta-learning ❯ which python
/Users/brandomiranda/miniconda3/envs/automl-meta-learning/bin/python

从 VS Code 运行 python 脚本似乎也可以正常工作,请参阅输出:

(automl-meta-learning) brandomiranda~/automl-meta-learning ❯ /Users/brandomiranda/miniconda3/envs/automl-meta-learning/bin/python /Users/brandomiranda/automl-meta-learning/python_playground.py

x = 1
my_str = this is a string
y = 2

但是当我尝试使用 jupyter notebook 时,它不起作用。

最明显的我的VS代码没有连接内核,看截图:

我尝试按照 reddit 上的建议单击几个箭头 (vs_code_jupyter_server_no_kernel_python_not):

当我尝试在我的 jupyter 笔记本中运行时,我收到以下错误:

Error: Activating Python 3.7.6 64-bit ('base': conda) to run Jupyter failed with Error: StdErr from ShellExec, /Users/brandomiranda/.bashrc: line 31: jump-module.bash: No such file or directory

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

    $ conda init 

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.


.

这很奇怪。我的 shell 甚至不是 bash,所以我不知道为什么向我显示该消息(也许 VS Code 不知道 Mac OS Catalina 使用 zsh?不知道如何为 VS Code 解决这个问题)。无论如何,我继续做我认为错误消息所暗示的事情。所以我做了以下事情:

我运行 conda init 然后进入 vs code 内的终端并通过运行 zsh 重新启动 shell,但 jupyter 内核仍然无法在我的笔记本上运行 vs code。不知道怎么回事。

另外,我按照错误信息的提示做了:

(automl-meta-learning) brandomiranda~/automl-meta-learning ❯ conda init zsh
no change     /Users/brandomiranda/miniconda3/condabin/conda
no change     /Users/brandomiranda/miniconda3/bin/conda
no change     /Users/brandomiranda/miniconda3/bin/conda-env
no change     /Users/brandomiranda/miniconda3/bin/activate
no change     /Users/brandomiranda/miniconda3/bin/deactivate
no change     /Users/brandomiranda/miniconda3/etc/profile.d/conda.sh
no change     /Users/brandomiranda/miniconda3/etc/fish/conf.d/conda.fish
no change     /Users/brandomiranda/miniconda3/shell/condabin/Conda.psm1
no change     /Users/brandomiranda/miniconda3/shell/condabin/conda-hook.ps1
no change     /Users/brandomiranda/miniconda3/lib/python3.7/site-packages/xontrib/conda.xsh
no change     /Users/brandomiranda/miniconda3/etc/profile.d/conda.csh
no change     /Users/brandomiranda/.zshrc
No action taken.

但似乎没什么区别。

知道如何解决这个问题吗?


VS code python 扩展的开发人员建议我遵循他们在这里所做的一切:

https://github.com/microsoft/vscode-python/issues/9566

但我不知道他们到底想让我做什么。

我该如何解决这个问题?


相关资源:

reddit:https://www.reddit.com/r/vscode/comments/eq2bfv/vs_code_jupyter_server_no_kernel_python_not/ gitissue:https://github.com/microsoft/vscode-python/issues/9636 我最初认为这是一个 conda 问题,所以我调查了这个问题:Activate conda environment stopped working in vscode https://www.reddit.com/r/vscode/comments/eshxka/how_does_one_connect_a_jupyter_kernel_to_vs_code/ https://www.quora.com/unanswered/How-does-one-connect-a-Jupyter-Kernel-to-VS-Code-if-one-does-not-connect-automatically

【问题讨论】:

vscode 使用自己的 pyenv 还是类似的?在设置中有一个用于 conda 路径的变量。你的设置好了吗? 【参考方案1】:

你需要为jupyter选择python解释器,你可以按照步骤来做

    打开命令面板

    Mac:CMD+Shift+P

    电脑:CTRL+SHIFT+P

    然后搜索select Interpreter to start jupyter server然后回车,它将列出所有解释器,然后选择任何解释器并完成!

这只是一个一次性的过程,之后会自动连接。

【讨论】:

仅供参考,我必须重新启动 vscode 才能生效【参考方案2】:

虽然看起来很奇怪,但前几天我也注意到了这一点,到目前为止,唯一对我有用的是通过从 Anaconda Navigator 启动它来打开 VS Code:

然后我得到了,正如预期的那样:

【讨论】:

【参考方案3】:

如果您看到我在 git 问题 (https://github.com/microsoft/vscode-python/issues/9566) 中进行了很长时间的讨论,一旦我删除了我的 .bashrc.zhrc 引发的所有错误,VS 代码中的 jupyter 功能再次开始为我工作。这非常奇怪(特别是因为我根本不使用 bash 并且我使用 zsh 作为我的 shell,我本来希望 VS 代码对我的 .SHELLrc 文件抛出错误是健壮的,但事实并非如此)。

如果这不起作用,那么您可能必须安装 vsix 视图扩展并安装问题中链接的 ms-python-insiders.vsix(https://github.com/microsoft/vscode-python/issues/9566)。

【讨论】:

以上是关于如果没有自动连接,如何将 Jupyter 内核连接到 VS Code?的主要内容,如果未能解决你的问题,请参考以下文章

如何调试垂死的 Jupyter Python3 内核?

Jupyter:内核似乎已经死亡。它将自动重启。 (与Keras相关)

如何在每个 jupyter notebook 内核之前运行 Python 代码

anaconda使用jupyter 多个内核共用 添加自动补全插件

anaconda使用jupyter 多个内核共用 添加自动补全插件

Jupyter 错误 - 对于给定的一段代码,“内核似乎已经死亡,它将自动重新启动”