【问题标题】:Is it possible to link the interactive python window to a running jupyter notebook kernel?是否可以将交互式 python 窗口链接到正在运行的 jupyter notebook 内核?
【发布时间】:2019-07-26 00:47:56
【问题描述】:

我喜欢 VS 代码中用于连接远程 jupter 笔记本服务器的新功能。它允许我在 docker 容器中运行 jupyter 并编写代码......

但是,在绘制 pandas 表等时,文本输出并不总是最佳的,为了快速迭代,最好有例如。提供散景交互式绘图。

所以我在考虑以下问题 - 是否可以启动一个 jupyter notebook,然后将 VS Code 连接到相应的内核。基本上,您也可以为正在运行的笔记本连接现有内核。

我现在可以这样做:

  1. 启动 jupyter notebook 服务器
  2. 启动新笔记本
  3. 在笔记本中执行以下魔法命令%connect_info
  4. 这会返回一个 json 位和一些指令 - 只需复制 json
  5. 在另一个 bash shell 中,我可以将此 json 写入名为 my_kernel.json 的文件并执行 jupyter console --existing my_kernel.json

现在我的浏览器中有我的笔记本,我的控制台连接到同一个内核。因此,我的浏览器中可用的任何变量在我的控制台中也可用(反之亦然)。

是否可以在 VSCode 中执行步骤 5 之类的... 我很想将代码从我的编辑器窗口发送到我的交互式 python 控制台,并可以从我的笔记本访问相同的内核......

【问题讨论】:

  • 嘿杰弗里。我是 VSCode Python 扩展团队的开发人员。你介意我问一个澄清问题只是为了确保我理解你的情况。您提到必须通过控制台连接它并获得纯文本输出。如果您想要更丰富的输出,您应该能够使用我们创建的交互式窗口来查看来自远程服务器的丰富输出。您使用控制台进行连接的原因是因为您需要 --existing 之类的东西来进行交互式窗口远程连接吗?
  • 让我尝试详细说明...我的最终目标是让 vs 代码中的交互式窗口和浏览器中的笔记本连接到同一个内核(在 docker 容器中运行)。这样做的原因是交互式窗口非常适合输出单元格结果,但它仍然缺少我习惯的一些交互式功能(例如散景图,格式良好的数据框,交互式窗口中的代码完成 - 例如。使用数据框找到一些的列名)。我现在或多或少能够通过在我的 docker 容器中启动一个笔记本服务器来获得我想要的结果,附加
  • 通过 docker 扩展将 VS 代码添加到该容器,使其在我的终端中运行。在该终端中运行 jupyter 控制台 --extend 并让 Ctrl+shift 将我的编辑器中的选择/当前行发送到我的终端.. 但我希望有交互式窗口选项
  • 完美。这就是我的猜测,但我想确定一下。我们目前不支持这个,但我会打开一个问题来跟踪它。在我看来,这是一个很好支持的场景。
  • 太棒了......我可以在某个地方投票吗?

标签: python visual-studio-code jupyter-notebook


【解决方案1】:

目前不支持此功能。我们支持连接到远程服务器,但在该远程服务器上,我们启动了一个新的无标题文档,我们使用它。我们目前没有连接到已经运行的内核的方法。

如果您想跟踪/投票,我创建了此问题以在此处跟踪它: https://github.com/Microsoft/vscode-python/issues/4644

【讨论】:

    【解决方案2】:

    也许你可以换一种方式:

    1. 通过连接到远程 Jupyter 服务器使用 VS 代码启动内核,如 here 所述。

    2. 启动另一个 Jupyter 笔记本并使用 extipy 将其连接到现有内核(由 VS 代码启动)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      • 2017-11-20
      • 2018-07-25
      • 2023-03-08
      相关资源
      最近更新 更多