WSL环境下VSCode中Jupyter变量无法在.py文件使用及终端同步问题
解决VSCode+WSL+conda环境下Jupyter与.py文件的问题
一、解决变量共享问题
Jupyter内核和.py文件的Python进程是完全独立的,默认无法直接共享变量,可通过以下方式实现:
- 文件序列化存储:在Jupyter里把变量存成文件,.py文件读取。比如用pickle:
Jupyter单元格代码:
.py文件代码:import pickle x = [10, 20] # 把变量存入字典再保存,方便存多个变量 with open('jupyter_vars.pkl', 'wb') as f: pickle.dump({'x': x}, f)import pickle with open('jupyter_vars.pkl', 'rb') as f: loaded_vars = pickle.load(f) x = loaded_vars['x'] print(x) # 输出 [10,20] - 导出变量代码:在VSCode的Jupyter侧边栏「变量」面板里,右键要共享的变量,选择「Export as Python Code」,会生成包含变量定义的代码块,直接复制到.py文件里就行。
二、让Jupyter运行时终端有输出
默认Jupyter内核的输出只显示在单元格下方,要让WSL终端同步输出,按以下步骤操作:
- 打开VSCode设置(快捷键
Ctrl+,),搜索「Jupyter: Run In Terminal」,勾选这个选项。 - 确认Jupyter用的是当前conda环境:
- 先在WSL终端激活你的conda环境:
conda activate 你的环境名 - 执行
python -m ipykernel install --user --name=你的环境名,把该环境添加到Jupyter内核列表 - 在Jupyter Notebook右上角切换内核到这个conda环境
- 先在WSL终端激活你的conda环境:
- 之后运行单元格时,WSL终端会启动内核进程,所有输出(包括
print内容、报错信息)都会在终端里显示,同时单元格下方也会保留输出。
内容的提问来源于stack exchange,提问作者Artur
相关产品推荐
相关产品推荐

