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