编辑bashrc刷新环境变量无效,VS Code远程SSH如何刷新服务器Shell?
VS Code远程SSH下刷新Shell并让Jupyter环境变量生效的方法
调整环境变量的加载文件
Jupyter启动内核时用的是非交互式shell,默认不会加载.bashrc。把需要的环境变量移到~/.profile或~/.bash_profile里,这两个文件在登录shell阶段会自动加载,不管是否交互。修改Jupyter内核的启动命令
- 生成Jupyter配置文件:
jupyter notebook --generate-config - 打开生成的配置文件(一般在
~/.jupyter/jupyter_notebook_config.py),找到c.KernelSpecManager.kernel_cmd,把Python内核的启动命令改成带交互式bash的形式:c.KernelSpecManager.kernel_cmd = ["bash", "-i", "-c", "python -m ipykernel_launcher -f {connection_file}"]
这样内核启动时会先加载
.bashrc里的配置。- 生成Jupyter配置文件:
正确重启远程会话
不要只关VS Code窗口,点击左下角的远程连接图标(绿色状态栏里的那个),选择「关闭远程连接」,之后重新连接服务器。这会重新初始化登录shell,加载最新的环境变量。连接后重启Jupyter内核即可。临时刷新当前会话的环境变量
如果只是临时生效,在Notebook的代码单元格里执行:!source ~/.bashrc然后用
%env命令查看是否生效,但这种方法只对当前Notebook会话有效,重启内核就会失效。配置VS Code终端为登录shell
打开VS Code设置(Ctrl+,),搜索「terminal.integrated.profiles.linux」,找到bash的配置,把命令改成bash -l。这样每次打开远程终端都会加载登录shell的配置文件,确保环境变量同步。
内容的提问来源于stack exchange,提问作者PyDude
相关产品推荐
相关产品推荐

