目录
1、VSCODE的jupyter插件以existing模式连接jupyter服务:
PS:该文基于2020年底的旧版VSCODE编写,最新版(按标注时计为1.69版)已经可以直接在界面正常使用、切换python解析器及其虚拟环境,也已经可以直接在jupyter插件界面直接使用各种连接模式。查看1.69版的操作方法,请看:VSCODE WIN x64 v1.69的python插件和jupyter插件的简单使用_ElienC的博客-CSDN博客
此外,此文假设你:
已在WIN10上安装conda、在主环境安装jupyter;
已创建虚拟环境;
已完成虚拟环境内核与主环境jupyter之间的连接配置;
已安装好VSCODE及其python、jupyter插件。
如没完成,请先进行以上准备。
下面开始正题:
1、VSCODE的jupyter插件以existing模式连接jupyter服务:
为什么要连接已有的jupyter服务,而不是直接在VSCODE的jupyter插件打开一个local jupyter服务呢?我也想,可是好像jupyter插件的kernel切换操作不能真正帮我切换过去,而是还停留在上一个环境中。比如下图,jupyter插件原本处于conda主环境下,python是3.8,但我点击右上角切换到装了python3.7的conda虚拟环境,再运行cell中的语句,输出的python路径和版本仍然属于python3.8的conda主环境。
所以,我干脆不用local模式,取而代之的是先启动VSCODE外的jupyter服务,再根据得到的服务地址,粘贴到vscode的jupyter插件进行remote模式的连接:
从外部启动notebook后,复制notebook server地址,回到jupyter插件,按Ctrl+Shift+P打开命令面板并输入命令:
Jupyter: Specify local or remote Jupyter server for connections
弹出如何连接jupyter的菜单,如下图。连接方式选existing,然后粘贴并按回车就行。
这里似乎还有一个小bug,粘贴notebook server地址并按enter后,菜单并没有消失,需要按esc才行。
然后按Ctrl+Shift+P打开命令面板并输入命令:
Jupyter: Select a Kernel
如下图,可以看到sever上已经建立的kernel,及其属于哪个conda环境。另外还显示有哪些conda环境可以进行新建kernel操作。
在这里可以选择连接到server上已经建立的kernel,也可以server上另外建立并连接新的kernel。
最后,在user的setting.josn加入以下内容:
"jupyter.sendSelectionToInteractiveWindow": true, //VSCODE的python编辑器中选定的的语句,按shift+enter后可传送到jupyter插件中执行,如果不需要这个功能,也可以注释掉
2、命令行终端设置:
其实,关于VSCODE上的conda设置, 官网Using Python Environments in Visual Studio Code
提供了一些注意事项,并提供了VSCODE在conda虚拟环境中运行的方式,先打开anaconda提示符,激活环境,然后输入code .启动VSCODE。
但这里我们不用上面的方式,而是用下面的:
思路是,受anaconda启动快捷方式里的参数启发,将vscode的python命令行终端改成cmd,并在启动时激活conda环境。
具体操作是,在user的setting.json添加以下语句(参考资料1,2):
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe", //选用cmd作为命令行窗口
"terminal.integrated.shellArgs.windows": [
"/k",
"D:\\anaconda3\\Scripts\\activate.bat D:\\anaconda3\\envs\\py3701" //此处修改为你conda虚拟环境文件夹位置
],
"python.pythonPath": "d:\\anaconda3\envs\\py3701\python.exe", //conda环境对应的解析器目录
设置参数参考:
1,Integrated Terminal in Visual Studio Code
2,如何在vscode中启动conda虚拟环境_weixin_53927286的博客-CSDN博客_vscode打开conda
设置参数作用范围只限user,若要在workspace设置,要需要按Ctrl+Shift+P打开命令面板并输入命令(参考资料3,4):
Terminal: Manage Workspace Shell Permissions