[踩坑日记]pycharm远程连接服务器jupyter与遇到的问题解决

参考博客:1.《Pycharm远程Jupyter》
2.《在远程使用jupyter时 设置密码报错No module named ‘notebook.auth‘》
3.《Windows10远程访问Ubuntu服务器上的Jupyter Notebook解决办法》

1.服务器上面按照jupyer模块

pip install jupyter

from jupyter_server.auth import passwd

2.服务器生成配置文件

jupyter notebook --generate-config

效果如图

3.服务器生成jupyter notebook的token

使用ipython进入交互式python命令行

ipython

效果如图
输入对应的代码:

from jupyter_server.auth import passwd
#passwd()别用,会生成argon2:$argon2id$v=19$m=10240,t=...类型的token,最后一步会报错Invalid credentials
passwd(algorithm='sha1')#(下面的图片我没改,记得自己要该)

然后设置密码,就可以得到token了
在这里插入图片描述

4.编辑Jupyter Notebook配置文件 jupyter_notebook_config.py(第2步有它的路径)

$ vim /home/username/.jupyter/jupyter_notebook_config.py

#配置ip
c.NotebookApp.ip = '*'
# 配置之前生成的hash密码 
c.NotebookApp.password = u'sha1:d6ee7d31ec9d:ef3df400549e...<your hashed password here>' #
# 配置是否自动打开服务器浏览器
c.NotebookApp.open_browser = False 
# 配置用于远程访问的端口号 # It is a good idea to set a known, fixed port for server access 
c.NotebookApp.port = 9999
#配置jupyter的根目录(这个是根据自己的情况来配置的,没需求不建议修改)
#c.ServerApp.notebook_dir = '/home2/'

以上要是找不到c.NotebookApp,就用c.ServerApp

5.服务器启动jupyter-notebook并挂在后台

#先用这个命令确定一下jupyter是否正常运行
jupyter notebook --allow-root

此时,理论上你就可以通过服务器ip+你设置的端口号ip:port访问到你的远程jupyter了,不需要用nginx再代理一遍了(我就是,以为需要用nginx代理一下,浪费了不少时间在nginx上面)

#如果一切正常,退出上面的命令,然后使用下面的命令,将jupyter挂在后台
nohup jupyter notebook --allow-root > jupyter.log 2>&1 &

这样就不用担心服务器断开连接,jupyter就用不了了
(命令:ps aux | grep jupyter 可以查看是不是有jupyter程序在运行,命令:kill <项目PID>可以关闭挂在后台的jupyter)

6.本地pycharm设置jupyter访问(后面的步骤来自参考博客,我不知道为什么一直会出错)

在这里插入图片描述
选择另外一个configure server
填写内容(注意:token就是之前我们在服务上面获得的,服务器ip就是你的远程服务器,端口号可以在服务器上面使用jupyter-notebook --allow-root试着显式启动一下jupyter就可以看到了 ):

http://192.168.0.16:8888/?token=b0ec9d44067b:48a6149c7013c4b66cac

在这里插入图片描述

如果拼接了密钥还是不行,可以试试不需要加入密钥

### 配置 PyCharm 连接远程 Jupyter Notebook 为了使 PyCharm 能够连接远程服务器上的 Jupyter Notebook,需要完成几个关键步骤。这些步骤涉及配置本地 PyCharm 设置以及确保远程服务器已正确安装和配置必要的组件。 #### 1. 确认远程服务器环境准备就绪 确认远程服务器已经安装了 Jupyter Notebook 或者更推荐使用JupyterLab,并通过 SSH 访问权限验证能够正常启动服务[^3]: ```bash pip install jupyterlab jupyter lab --version ``` 如果计划在同一台机器上允许多个用户访问,则可能还需要考虑部署 JupyterHub 来管理多个用户的会话。 #### 2. 编辑 Jupyter Notebook 的配置文件 编辑位于 `~/.jupyter/` 目录下的 `jupyter_notebook_config.py` 文件来调整默认行为,比如允许来自特定 IP 地址范围内的请求或指定工作目录等参数[^1]: ```python c.NotebookApp.ip = '0.0.0.0' c.NotebookApp.open_browser = False c.NotebookApp.port = 8888 ``` 请注意,在生产环境中不建议将监听地址设为公开可访问的形式 (`0.0.0.0`),除非采取适当的安全措施如防火墙规则限制。 #### 3. 启动远程 Jupyter Server 并获取 Token 启动 Jupyter 实例会自动生成一个临 token 用于身份验证。此 token 将被用来建立安全连接[^2]: ```bash jupyter notebook --no-browser --port=8888 & ``` 记录下输出的日志中的 URL 和 token 值以便稍后使用。 #### 4. 在 PyCharm 中添加 Remote Python Interpreter 进入 PyCharm 的偏好设置界面,找到 "Project: <project_name> / Python Interpreter" 选项卡,点击齿轮图标选择 “Add...”。接着按照提示操作直到可以通过 SSH 协议成功添加远程解释器为止。 #### 5. 创建新的 Jupyter Connection 回到 PyCharm 主窗口顶部菜单栏依次点击 Tools -> Start Jupyter Server。此应该能看到刚才创建好的那个带有 token 参数的链接。输入完整的 URI (包括 http:// 开头部分),并附带之前获得的那个 token 字符串作为查询字符串的一部分提交给对话框。 一旦上述所有准备工作都已完成,就可以像平常一样在 IDE 内部浏览、执行笔记本文档了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值