Pycharm中使用远程JupyterLab以及JupyterHub登录问题
创始人
2024-03-08 19:47:19
0

文章目录

  • 需求分析
  • 登录网页JupyterHub
  • Pycharm配置远程JupyterHub
  • 一点思考

需求分析

在之前的文章中我们讨论了如何使用Pycharm连接远程服务器并进行调试,Pycharm中SSH、SFTP连接远程服务器编辑调试全面手把手教程,成功在Pycharm中添加了远程Python解释器,并用其运行了服务器上的.py文件,但是对于很多数据科学工作者,Jupyter Notebook的灵活易用性仍然是他们选择其的重要一环,目前的教程讲解的多是如何在服务器上开启jupyter notebook服务并在Pycharm中使用,而并没有关注到多人服务器中的JupyterHub配置情况。因此,本文章重点讨论如何在远程服务器开启JupyterHub且不能私自打开jupyter notebook服务的情况下如何配置Pycharm使其可以使用远程Jupyter notebook服务。

登录网页JupyterHub

由于无法自己开设jupyter notebook服务,因此首先需要知道服务器的IP和JupyterHub的端口,在浏览器中输入(将IP替换为你的服务器IP,Port替换为你的服务器的JupyterHub所占用的端口)

http://IP:Port/

进入JupyterHub服务页面,如下图所示
在这里插入图片描述这个时候会输入用户名和密码,这里的用户名和密码对应服务器的用户名和密码,填好后点击登录,此时会自动开启服务,并进入你的JupyterLab页面,如下图所示,画红圈的地方代表了你的虚拟环境。
在这里插入图片描述
如果需要向jupyterlab中添加自己的anaconda环境,首先进入该环境,然后执行以下命令:

python -m ipykernel install --user --name 参数1 --display-name "参数2"

注意需要安装ipykernel这个包,命令中的“参数1”需要改为你的conda创建的环境的名称,“参数2”需要改为你想要在jupyterlab上展示的名字。例如:

python -m ipykernel install --user --name pytorch1.6 --display-name "pytorch1.6"

执行完这条命令后,会在用户目录下创建相关kernel,此时再打开jupyterhub,就能选择这个kernel了,我这里的kernel名字是torch1.13。

正常来讲这个时候我们就可以在浏览器的JupyterLab里面打开文件敲代码了,接下来配置Pycharm

Pycharm配置远程JupyterHub

打开你需要在服务器运行的Jupyter项目,配置好与服务器的SFTP设置(如何配置请参考"需求分析"中的连接),初始状态如下图所示,红圈和绿圈分别对应着本地和远程服务器mapping的项目文件,接下来我配置mi_estimation.ipynb文件来作为演示。
在这里插入图片描述
进入设置中的Jupyter Server页面,如下图所示,选择Configured Server
在这里插入图片描述
在这个地方输入与前面浏览器打开JupyterHub相同的网址,即http://IP:Port/,点击确定,Pycharm会自动验证该地址。这个时候可以看到下图红色标记处就已经有你的Jupyter Server了。
在这里插入图片描述
接着尝试运行任意一个cell,会弹出JupyterHub的认证页面,如下图所示
在这里插入图片描述

在这里要尤其注意的是,这里的Username是你在服务器的用户名。但是!但是!这里需要填的是Token,而不是密码,接下来我们需要获取Token。
回到在上个阶段打开的JupyterHub网页,选择左上角File->Hub Control Panel
在这里插入图片描述
弹出下图所示页面,选择图中圈出的Token
在这里插入图片描述
在这个地方列出了目前所有用到JupyterHub Api的地方,如下图所示
在这里插入图片描述
因为我们需要在Pycharm上再配一个Jupyter,所以点击上方按钮“Request new API token”,如下图所示
在这里插入图片描述
接下来,粘贴此Token至Pycharm刚才弹出的对话框的Token位置,点击OK
在这里插入图片描述
这个时候刚才我们运行的那个Cell已经开始运行了,并给出了运行结果,右上角可以选择虚拟环境
在这里插入图片描述
至此,Pycharm配置JupyterHub服务来远程运行Jupyter文件已全部结束。

一点思考

根据之前的文章可以发现,当我们运行.py文件时,点击运行的那一刻,Pycharm是先将本地的文件上传至服务器覆盖相应文件后,再调用远程Python解释器来运行服务器文件。而针对.ipynb文件却不是这种逻辑,在运行每一个Cell的时候,其实Pycharm并没有将整个文件上传到服务器上,而是仅仅使用Jupyter服务来运行相应Cell代码,只有当我们手动将整个文件upload到服务器上时才会对服务器上相应文件进行更新。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...