在Pycharm上使用Jupyter notebook非常惬意,可以充分利用Pycharm的强大的debug与coding assistance能力。然而,在使用过程中也有一些问题,记录如下:
问题1:Jupyter远程调试出现ModuleNotFoundError: No module named 'cs231n.data_utils’
问题排查:
– 首先这个cs231n在Linux server上是存在的,如下图所示:
– 然后我新建了一个test.py在上述的目录中,测试一下简单一点的代码是否可以运行,代码如下:
from cs231n.data_utils import load_CIFAR10
import os
mypath = os.getcwd()
print(f"我的当前路径是{mypath}")
# Load the raw CIFAR-10 data.
cifar10_dir = 'cs231n/datasets/cifar-10-batches-py'
X_train, y_train, X_test, y_test = load_CIFAR10(cifar10_dir)
发现运行没有问题,并且打印出来的内容: 我的当前路径是/home/lollows/cs231n-assignment2019/assignment1 也没有问题
– 接着新建一个test.ipnb文件,输入与test.py相同的内容,发现打印输入为:我的当前路径是/home/lollows ,同时报错JModuleNotFoundError: No module named ‘cs231n.data_utils’。而且通过os.chdir与os.chroot均不起作用。这说明是Jupyter运行时的工作目录没有设置或者与工程的目录不一致造成的
解决办法:
在jupyter_notebook_config.py中添加notebook_dir选项,进而设置或修改jupyter的工作目录。具体可参考Pycharm配置Jupyter Notebook实现在linux server上开发与调试
# Edit the notebook config file
vim /home/lollows/.jupyter/jupyter_notebook_config.py
# 添加如下信息
c.NotebookApp.notebook_dir = '/home/lollows//cs231n-assignment2019/assignment1'
再次运行test.ipnb即可发现运行正确。
问题2:使用pycharm远程调试Jupyter时不能进入debug模式
查看Jetbrain网站,发现当前版本还不支持该功能😂