Python本地利用Jupyter Notebook调试远程服务器

0. 前言

 最近在公司希望在本地调用服务器的Python进行Python的调试,踩了很多坑,现在记录下主要的过程。

1. 环境

  • 本机环境:Ubuntu 16.04
  • Python:Anaconda
  • 服务器环境:centos

2. 服务器Jupyter Notebook设置

01. 在服务器安装anaconda

  自己或者联系SRE在服务器安装anaconda(主要是由于这个集成了很多包,方便使用)

02. 生成密码

 打开python终端生成密码,防止他人使用自己的环境。(^ _ ^)

# 打开python终端
from IPython.lib import passwd 
passwd() 
Enter password: 
verify password: 
OUt: 'sha1:0e422dfccef2:84cfbcbb3ef95872fb8e23be3999c123f862d856' 

03. 修改Jupyter Notebook默认配置文件

 在服务器终端输入vim ~/.jupyter/jupyter_notebook_config.py,打开默认配置文件,如果没有则创建。然后在末尾输入这几行。其实还有很多可以配置,具体配置可以在网上查找。

c.NotebookApp.ip='*' 
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文' 
c.NotebookApp.open_browser = False 
c.NotebookApp.port =8888 #随便指定一个端口,例如可以指定为9999
c.ContentsManager.root_dir='/home/work/python' # 指定jupyter的根目录

04. 服务器打开jupyter

 在服务器打开jupyter服务,最好利用nohup后台执行,这样就可以一直连接

# 注意配置ip和port
nohup /anaconda3/bin/jupyter-notebook --ip="0.0.0.0" --no-browser --port=8888 >/dev/null 2>&1 &

Ps:正常情况下,现在已经能通过本地浏览器(配置好代理!!!)输入服务器IP和端口来连接到服务器的jupyter,但是由于公司服务器端使用了nginx的反向代理,在使用的时候,虽然能访问notebook,但是无法使用kernel,也就无法运行python代码,所以还需要配置websocket的功能,但是也可以通过如下方法进行本地的互通。

05. 服务器端连接本地

 在服务器执行ssh -R 0.0.0.0:8888:0.0.0.0:8888 本地用户名@本地IP 输入本地计算机的密码,即可在服务器端连接本地

06. 本地浏览器接入

 本地浏览器localhost:8888进入jupyter使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值