【Pycharm】Pycharm+jupyter远程配置教程、及解决pycharm显示variables are unavailable集群报“No session ID specified“问题

Pycharm + Jupyter

先看效果:可以看到我本地的datasets文件的目录和打印出来的是不一样的,说明成功连接到远程了。
在这里插入图片描述

痛点分析

  1. 自己的电脑不适合跑深度学习:本人习惯用macos,mac懂得都懂…系统用着是挺舒服的,就是这性能有点拉(19年的,不是M1),没法拿来跑深度学习(毕竟光数据集就很大,我的mac还是256g的)…哪怕是用游戏本的朋友,我相信一般能不用自己电脑跑也不会用自己电脑跑(毕竟自己的卡要用来打游戏hhhh)
  2. 在服务器编辑代码不方便:如果直接在服务器上写代码看代码,那就要用vim了,界面看着丑是其次,主要是真的很影响效率…
  3. 集群的计算节点没法直接连上去:懂行的朋友一定会问,那你搞jupyter连接干嘛,直接用pycharm连server的环境不就好了,在jupyter里编译器选server上的。我遇到的问题是,实验室的集群pycharm只能直接连到登陆节点上(只有CPU,GPU都在计算节点上),不能连接到计算节点上(应该是怕被黑客装挖矿程序,计算节点屏蔽掉外部访问了)。尝试过想把远程连到计算节点上,最后无疾而终。因此想到了个解决方案:pycharm连接登陆节点做文件同步、jupyter连登陆节点做代码快速试错、同步后的成熟代码直接在服务器里进计算节点运行。

废话说完了,开始教程,新手不要放弃,顺着做就能配好!折腾一次,幸福一生!

首先配服务器上的jupyter

默认大家都有conda环境了,没有conda的朋友百度一下怎么装conda,很简单…这里不赘述了

  1. 给需要的conda环境安装jupyter
    conda activate xxx # xxx用你要使用的环境名字
    
  2. 安装jupyter
    conda install jupyter 
    
  3. 生成jupyter配置文件jupyter_notebook_config.py
    jupyter notebook --generate-config
    
    (生成的配置文件的位置在:/home/xxx/.jupyter/jupyter_notebook_config.py xxx是你的用户名)
  4. 生成密码
    jupyter notebook password
    
    敲完上述命令会显示的输出:
    Enter password:  xxxx
    Verify password: xxxx
    [NotebookPasswordApp] Wrote hashed password to /home/xxx/.jupyter/jupyter_notebook_config.json
    
    .json文件里保存了生成的hash密码。
  5. 修改配置文件
    打开配置文件:
    vim /home/xxx/.jupyter/jupyter_notebook_config.py 
    # 在不同服务器上,路径可能稍微有一点不一样,比如我的是/share/home/liuzf/.jupyter/jupyter_notebook_config.py
    
    vim中跳转到文件末尾:
    在vim打开文件后按 shift+g 跳转到文件末尾。也可以在开头编辑,这里列出只是方便新手了解直接跳到文件末尾的方法,万一哪天用上了呢hhhhhhh。(config文件打开里面应该全是注释,相信自己,你的config文件没问题,不要慌…)
    添加以下内容:
    # ip 设置为 *
    c.NotebookApp.ip = '*'
    # hash密码,前面的u不可以省略,后面的hash密码就是在.json文件中双引号里的内容
    c.NotebookApp.password = u'<your hashed password here>'
    # 浏览器设置不打开
    c.NotebookApp.open_browser = False
    # 设置一个固定端口,设置一个没有占用就好
    c.NotebookApp.port = 8888
    # 这个可加可不加,亲测似乎不加也没什么问题
    c.NotebookApp.allow_remote_access = True
    
  6. 安装kernel(感觉上这一步可能也不是必须的,如果你在对应的环境里打开jupyter,应该没有这一步也可以。如果上述流程走完还是有问题的话,把这一步走了。)
    conda activate xxx # xxx用你要使用的环境名字
    conda install nb_conda_kernels
    
    #看有的教程里source有这一步,但亲测似乎不用,不排除有的朋友可能会需要这行,所以贴上来
    source activate xxx # xxx用你要使用的环境名字
    
    # 中文部分换成自己的,其他部分不用改
    python -m ipykernel install --user --name 环境名称 --display-name "要显示的名称"
    
    查看已有的kernel
    jupyter kernelspec list
    
  7. 完成配置
    以上几步走完之后jupyter就配置完成了,接下来就是在集群上打开jupyter
    conda activate xxx
    jupyter notebook
    

配置Pycharm

  1. 在server上启动jupyter,具体参考上一步
  2. 新建一个jupyter notebook文件
    在这里插入图片描述
  3. 新建后选择Configure Jupiter Server
    在这里插入图片描述
  4. 输入服务器地址:http://ip:port?token=xxx (xxx是你的明文密码,不是hash密码)
  5. 然后就可以开始愉快的写代码啦!

Pycharm显示variables are unavailable for remote jupyter server,看不到运行结果的问题

上述过程走完之后,可能会遇到一个问题就是点击运行,pycharm下面会显示variables are unavailable for remote jupyter server。server上报的错类似这样:

# 我的报错记录找不到了,从一个老哥那里复制来的,链接:https://intellij-support.jetbrains.com/hc/en-us/community/posts/4410324715026-Erro-in-Jupyter-notebook-No-session-ID-specified
[I 19:39:21.639 NotebookApp] 302 GET /api/kernelspecs/ (127.0.0.1) 3.070000ms
[I 19:39:22.969 NotebookApp] Kernel started: fea9c78e-237d-4fb7-a19c-ea2a6efd7861, name: python3
[W 19:39:23.013 NotebookApp] No session ID specified
[W 19:39:42.220 NotebookApp] 404 GET /api/kernels/4827d810-1125-4fbf-b90d-dc340fea25f4/channels?session_id=4c0eb9f7ecca48a1b8d97ba71981880e (::1): Kernel does not exist: 4827d810-1125-4fbf-b90d-dc340fea25f4
[W 19:39:42.299 NotebookApp] 404 GET /api/kernels/4827d810-1125-4fbf-b90d-dc340fea25f4/channels?session_id=4c0eb9f7ecca48a1b8d97ba71981880e (::1) 81.120000ms referer=None

我遇到这个问题之后,起初以为是没配置好,各种改配置,还是不行。之后测试了一下,直接在浏览器远程连接jupyter是可行的,说明配置是没问题的。这就很奇怪了…

解决方案

最后发现解决办法是:更新一下pycharm版本…=_=
是的,你没听错,问题就是你的pycharm版本可能太老了,更新一下就好了…
我原来用的是2019.3,更新到2021.3之后,就能用了…server上还是会报出No session ID specified,但是不影响使用。
这是原始回答…试了成功之后差点没一口老血喷出来=_=
在这里插入图片描述

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小丫么小阿豪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值