繁体   English   中英

VSCode 中的 Python/Jupyter 笔记本没有使用正确的环境

[英]Python/Jupyter notebook in VSCode does not use the right environment

情况

我在 Windows 10 上使用 Anaconda 3。

我有一个 Visual Studio Code 工作区 ( my_workspace ),而不是一个 Jupyter 笔记本 ( my_notebook.ipynb )。 VSCode 安装了 Python 扩展。

文件my_workspace/settings.json包含:

{
    "python.pythonPath": "C:\\Users\\Me\\Anaconda3\\envs\\my_env\\python.exe"
}

my_env是现有的 Anaconda 环境。 我可以激活它并在 shell 中使用它,如果我在这样的 shell 中运行jupyter lab ,则笔记本中的代码可以按预期导入my_env的包。

如果我在my_notebook.ipynb中打开my_workspace ,然后在选项卡中打开 my_notebook.ipynb,在my_env的状态栏中也会提到 my_env(“Python 3.7.6 64-bit ('my_env': conda)”),并且打开时会自动激活my_env VSCode 控制台中的 PowerShell 提示符(我运行了一次 conda conda init )。

问题

当笔记本在 VSCode 中打开时,Jupyter kernel 似乎使用base环境的 Python 解释器而不是my_env中的解释器。 导入安装在my_env中但未安装在base中的 package 时,出现此错误:

>>> import keras
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'keras'

这发生在所有包上,而不仅仅是keras

在 VSCode 的笔记本选项卡中,如果我单击右上角的解释器名称,然后选择正确的解释器( my_env中的解释器),则笔记本在my_env中正确运行。 但是每次我重新打开 VSCode 时都必须这样做。

如何使默认 kernel 尊重 settings.json 中选择的settings.json

我认为现在没有参数来控制settings.json 我在启动笔记本的环境中遇到了类似的问题,我能够通过修改 IPython 笔记本中的kernelspec部分来解决这个问题。

基本上,将笔记本作为 JSON 文件打开并删除kernelspec部分。 当笔记本从 vscode 启动时,该部分将填充工作区的默认 python 环境内核。 在我的情况下,充满了 pipenv 环境。

就我而言,在创建新环境后,必须多次重新启动 VS 代码,然后才能找到新的环境。 看起来 VS Code 必须花一些时间才能在系统中找到新的 Env。

也许这有帮助,但也许没有。 我在远程机器上的 ssh session 期间遇到了这个问题。 我不得不使用 VS 代码命令 > Python: Select 解释器

> Python:选择解释器

在这里形成我需要将位置添加到我希望工作的环境中。

添加路径

只要在路径中安装了 jupyter 就应该没有问题(:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM