vscode remote development + ipynb的坑

    技术2026-09-30  15

    背景:

    原来本地(win10)可运行的一个练习项目(包含*py和*.ipynb),复制到远程主机(ubuntu)后,用vscode 远程开发,碰到以下问题,记录一下,作为备忘录。

    问题1:configuration.jsonValidation.url配置

    vscode会有中文提示:[tht13.python]: "configuration.jsonValidation.url" 必须是绝对 URL 或者以 "./" 开头,以引用扩展中的架构。

    若vscode为英文版:[tht13.python]: ‘configuration.jsonValidation.url’ must be an absolute URL or start with ‘./’ to reference schemas located in the extension.

    解决办法:在

    ~\..vscode-server\extensions\tht13.python-0.2.3\.package.json文件中,找到jsonValidation,在url前加上一个圆点.

    参考链接:

    https://www.sci.dog/?p=484 

    https://ywnz.com/linuxjc/6331.html

    注意:修改远程主机端,而不是本地端。

    问题2:vscode频繁断线,且ipynb文件无法正常加载并显示。

    vscode 远程打开*.py 文件没问题,但只要开*.ipynb就挂了:ipynb文件打不开,且vscode开始频繁掉线并自动重连。

    这个问题被弄的头疼不已。搜索好几个小时,折腾不少,总算勉强解决,能正常用了(并没有彻底解决)。

    说没有彻底解决,是因为在打开某一些ipynb文件时,加载的有点慢,仍然会断线重连,但等个一两次重连,就能正常加载。

    说勉强解决,是因为在解决前,基本加载不了ipynb,一直断线重连(貌似还有规律,20s左右就自动断线再重连)。

    搜索了一些链接文章,也照做了一些,不确定是哪个动作是有效。把思路和动作记录一下吧。

    1,先确定远程主机有安装最新版的anaconda

    参考:https://ywnz.com/linuxjc/1896.html

    2,在远程主机端利用conda 安装python环境,并在此环境下,安装jupyter notebook

    参考:

    https://blog.csdn.net/codingpy/article/details/105803890

    https://blog.csdn.net/weixin_40787712/article/details/106678293

    创建环境:conda create --name  python381 python=3.8.1

    激活环境:conda activate python381

    安装jupyter note:conda install jupyter notebook

    该文后来启动jupyter服务,并将服务地址指定给vscode,当时试过后看起来没有解决,打开ipynb仍然加载不了且断线重连。且发现在vscode指定连接url时,其defauld选项表示可以自动启动jupyter server。所以后面的尝试就用的是default。

    3,猜测会不会和ssh配置有关。

    参考:

    https://blog.csdn.net/weixin_37251044/article/details/79678871

    https://blog.csdn.net/jieCooner/article/details/39205791

    https://blog.csdn.net/l297969586/article/details/102499611

    试着改了下,发现仍然没有解决问题。这个倒说得通。因为我ssh本身并未断开,估计还是和jupyter或vscode相关,和ssh关系不大。

    4,发现vscode之前安装的几个python相关的插件,存在感叹号。卸载一遍重新安装。这些插件包括:Python,Python for VSCode,Python Extension Pack等。重装后仍然未解决。

    5,有个哥们碰到的问题应该一样(https://www.v2ex.com/t/643690),可惜没有提供解决办法。

    6,当时创建这些联系项目的环境是python 3.7.4,莫非版本不匹配?。用conda创建3.7.4环境并切换环境。仍然不行。

    折腾一通没有明显进展,困的不行,重启了服务器去休息。第二天一早再开ipynb,神奇般地可以打开。回顾一下这些动作,感觉第2点的安装jupyter是必须的;第4点的插件重装也许有点用(至少重装后没有感叹号);第6点将3.7.4环境删除,也可打开,说明跟它没什么关系。

    后续如果有彻底解决,再更新吧。

    问题3:interpreter找不到指定版的kernel

    vscode 提示消息:Couldn't find kernel 'Python 3.8.1 64-bit ('python381': conda)' that the notebook was created with. Using the current interpreter.

    此问题还来不及解决。不过看起来没什么影响。打开ipynb时,会报这个信息。然后vscode苦苦加载,也许会有断线,然后重连个一两次,就打开了。

    后面有空再查。先写到这里。

    Processed: 0.010, SQL: 9