当前位置: 代码网 > it编程>前端脚本>Python > Pycharm关于远程JupyterLab以及JupyterHub登录问题

Pycharm关于远程JupyterLab以及JupyterHub登录问题

2024年07月06日 Python 我要评论
需求分析在之前的文章中我们讨论了如何使用pycharm连接远程服务器并进行调试,pycharm中ssh、sftp连接远程服务器编辑调试教程,成功在pycharm中添加了远程python解释器,并用其运

需求分析

在之前的文章中我们讨论了如何使用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到服务器上时才会对服务器上相应文件进行更新。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com