Jupyter Notebooks 中的 Python 版本和环境的 VSCode 问题

bro*_*eim 7 python environment version visual-studio-code jupyter-notebook

问题:我的 Python 环境和版本与 VSCode 中的设置不匹配,导致我尝试在 Jupyter Notebook 中使用的包出现问题。我使用的是安装了 Python 3.9.1(包括旧版本)和 Visual Studio Code 1.52.1 的 Windows 10 计算机。简短摘要 - 我使用 pip 安装一个包。我的猜测是它与最新版本的Python有关。我在 VS Code 中为该版本的 python 设置了一个解释器,并尝试导入该包。找不到该包。如果我从 Jupyter Notebook 调用 sys.version,我会看到正在运行默认版本的 Python (3.8.5)。简单的笔记本会抛出错误,因为它找不到我用 pip 安装的包。

显示关联的屏幕截图: 带有注释的 VSCode 屏幕截图。 import sys 在笔记本中以蓝色圈出,并有一个箭头向下指向输出,显示 print(sys.version) 为 3.8.5(默认值,2020 年 9 月 3 日,21:29:08)。 另一个蓝色箭头显示解释器设置为 Python 3.9.1。 一组红色箭头显示导入 pygmt 命令,红色箭头跟踪调用错误 ModuleNotFoundError:没有名为“pygmt”的模块。 另一个红色箭头显示 pygmt 0.2.1 安装在终端中的 pip list 命令下

此错误仅可重现

import pygmt
Run Code Online (Sandbox Code Playgroud)

笔记本中的命令,即它不依赖于导入的其他包。

问题:如果更改解释器不起作用,如何控制 Jupyter 笔记本在 VSCode 中运行的版本?我发现的所有其他类似问题都是由于没有选择正确的口译员造成的。在这种情况下,我有。为什么它不运行该版本的解释器?

谢谢。

编辑 此编辑是为了回应 @Jill Cheng 的回答(请参阅下面我的评论 tl;dr)。我可以更改解释器(VSCode 的左下角)以匹配 VSCode 想要运行的默认解释器。没问题。屏幕截图显示可以更改解释器(左下角)以匹配默认的 VSCode Python 版本。 但是,我无法将所需的包安装到此版本的 Python 中,如终端中所示。 但仍然存在问题。

  1. 我无法将目标包 pygmt 安装到此版本的 Python 中(请参阅终端中的命令)。
  2. 我无法让 VSCode 以相反的方向运行 - 即我永远无法让它运行 Python 3.9.1,即使这是我选择的解释器。

我已经重新安装了 VSCode 好几次了,Python 3.8.5 似乎总是默认的。对我来说,最简单的解决方案似乎是更改 VSCode 的默认 Python 版本 - 事实上,这不是选择解释器的重点吗?我更不清楚为什么我不能将 pygmt 安装到 Python 3.8.5 中,而且我不知道使用多个不同版本的 Python 并使用不同的包是否有益(或者这只是 Python 用户每天处理的事情? )。

Jil*_*eng 8

在 VS Code 中,Jupyter Notebook 使用的 Python 内核(Python 环境)可以独立于我们在 VS Code 中选择的 Python 环境(如 VS Code 左下角所示)。

如屏幕截图中的输出所示,您使用的 Jupyter 的 Python 内核是“Python3.8.5”,但此环境中未安装模块“pygmt”。(Jupyter 默认使用最后选择的 Python 环境。)

解决方案:在Jupyter Notebook中点击右上角的Python内核,选择已安装模块“pygmt”的Python环境。另外,建议您在切换Jupyter的Python内核后重新打开jupyter文件,以便它可以重新加载新的python内核。

在此输入图像描述

参考:VS Code 中的 Jupyter 笔记本