[英]Can't run jupyter notebooks in vscode, IPyKernel not installed into interpreter, Windows 10, Ananconda Distributor
[英]Can't run Jupyter Notebook in VSCode - Vanilla Python, Windows 10
我的 Windows 10 计算机上安装了现有的香草 Python,我不想重新安装 Anaconda。
尝试在 vscode 中运行 ipynb 文件中的代码时,出现以下错误:
Error: Jupyter cannot be started. Error attempting to locate jupyter:
at A.startServer (c:\Users\[username]\.vscode\extensions\ms-python.python-2020.2.64397\out\client\extension.js:1:786120)
at async A.ensureServerAndNotebookImpl (c:\Users\[username]\.vscode\extensions\ms-python.python-2020.2.64397\out\client\extension.js:1:785575)
at async A.ensureServerAndNotebook (c:\Users\[username]\.vscode\extensions\ms-python.python-2020.2.64397\out\client\extension.js:1:785376)
at async A.submitCode (c:\Users\[username]\.vscode\extensions\ms-python.python-2020.2.64397\out\client\extension.js:1:782328)
at async A.reexecuteCell (c:\Users\[username]\.vscode\extensions\ms-python.python-2020.2.64397\out\client\extension.js:75:879318)
以下是我尝试过的一些事情:
检查 VSCode 扩展是否正确安装
“Jupyter”扩展已被弃用。 我安装了 Microsoft 的“Python”插件,其中包含 Jupiter Notebook 支持。
Jupyter 安装正确
我尝试重新安装 jupyter:
> python -m pip install --upgrade pip
> pip install jupyter
> pip install notebook
试图在终端/命令行上运行 Jupyter
> jupyter notebook //didn't work
jupyter : The term 'jupyter' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ jupyter
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (jupyter:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
这给出了一个错误,无法找到 jupyter 可执行文件。 根据这篇文章,我尝试了以下方法并且成功了:
> python -m notebook
检查是否指向正确的解释器
根据这篇文章,我尝试过:
但是我的电脑上只安装了一个版本的 Python,这样做并没有什么不同。
检查路径
这篇文章中有关于PYTHONPATH
的评论,但由于正确引用了 python 目录并且python
工作,因此我没有进一步调查它。
需要注意的一点是pip
安装到我的"C:/Users/[username]/appdata/Roaming/Python-38/"
文件夹中,而我的 Python 安装在"C:\Program Files\Python38-32\"
中。
如果您有类似的问题,请尝试问题中提到的上述步骤。
阅读这篇文章后,我意识到我必须 map 安装了 pip 的脚本,即使它在我的漫游目录中。 https://discuss.python.org/t/windows-appdata-roaming-vs-local/2682 。 一个让我花费了这么多小时的困惑。
添加变量的步骤如下:
最后重新启动 VSCode 以获取要为 VSCode 更新的新环境变量。 现在运行 ipynb 文件中的脚本,它应该可以工作了。 它也可能抱怨它需要其他模块,在这种情况下你可以使用'pip'来安装它。
注意:如果您不受计算机上现有 python 版本的限制并且不想安装更多版本,您也可以使用 Python Anaconda 分发版。 https://www.anaconda.com/distribution/
注意:如果您希望 jupyter note 对使用您的计算机的所有用户工作,您需要配置 pip 以将安装下载到不在“C:\Users[username]”文件夹中的目录,并向其中添加系统变量.
对我来说,另一种解决方案有所帮助。 我不太确定,虽然是什么问题,但不知何故,为确切的工作空间存储的 state 导致 Python 扩展崩溃。 VSCode 将所有工作区的状态存储在/Code/User/workspaceStorage/
下的全局配置文件夹中。 请参阅此帮助段落中针对您的操作系统的settings.json
的路径,然后只需替换路径的末尾即可。 以 Windows 为例,设置路径为%APPDATA%\Code\User\settings.json
,所以 state 存储为
%APPDATA%/Code/User/workspaceStorage/
在这个目录中,有很多子目录,有一些十六进制名称,很难与工作区相关联。 找出工作区的 id
vscode.context.configuration()["workspace"]["id"]
然后您可以通过工作区的 id 删除 workspaceStorage 子文件夹。
另一种方法是使用workspaceStorage 文件夹内容本身。 每个文件夹都包含一个工作区。json 通常包括工作区的路径。 所以我写了一个小 python 脚本来帮助我浏览它们。 在脚本的末尾,有一个关于删除远程容器的所有工作区的草案。 随意根据您的需要进行修改。
from glob import glob
import os, json, sys
from shutil import rmtree
if sys.platform.startswith("win32"): path = os.environ["APPDATA"] + '/Code/User/workspaceStorage/' # Windows
elif sys.platform.startswith("darwin"): path = os.environ["HOME"] + '/Library/Application Support/Code/User/workspaceStorage/' # Mac OS
elif sys.platform.startswith("linux"): path = os.environ["HOME"] + '/.config/Code/User/workspaceStorage/' # Linux
for f in glob(path + "*/*.json"):
with open(f) as fr:
ws = json.load(fr)
d = ""
if "folder" in ws.keys():
d = ws["folder"]
elif "workspace" in ws.keys():
d = ws["workspace"]
elif "configuration" in ws.keys():
d = ws["configuration"]["fsPath"]
ws_path = os.path.dirname(f)
print(d, ws_path)
if d.startswith("vscode-remote://attached-container") or d.startswith("vscode-remote://dev-container"):
print("Inside a container")
# rmtree(ws_path)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.