如果没有自动连接,如何将 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:内核似乎已经死亡。它将自动重启。 (与Keras相关)
如何在每个 jupyter notebook 内核之前运行 Python 代码
anaconda使用jupyter 多个内核共用 添加自动补全插件