jupyter使用远程服务器调试

前提:

  • 远程服务器:CentOs 7
  • 本地计算机:Ubuntu 16.04

步骤:

1. 远程服务器安装anaconda:

  • 可以去官网下载合适版本的anaconda,或使用一下脚本(可修改版本号):
    wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
    
  • 运行安装向导:
    bash Anaconda3-5.2.0-Linux-x86_64.sh
    
  • 确认是否安装成功
    conda --version
    

2. 远程服务器配置jupyter

  • 现在命令行里输入ipython进入 ipython环境
    from notebook.auth import passwd 
    passwd() 
    
    然后输入密码,连续输入2次,会输出一个哈希值,如下例所示:
    sha1:26fe880a60ee:c466e27d9cc2befadd3b72bfcbafce1a07703a27,复制此值
  • 进入安装目录:cd /home/user-name/anaconda3/etc/jupyter
    执行命令:jupyter notebook --generate-config
    (该命令会产生文件:home/user-name/.jupyter/jupyter_notebook_config.py)
  • 然后再编辑产生的文件:vi home/user-name/.jupyter/jupyter_notebook_config.py
    在最后面加入:
    c.NotebookApp.ip = '*' # 允许访问此服务器的 IP,星号表示任意 IP
    c.NotebookApp.password = u'sha1:xxx:xxx' # 之前生成的密码 hash 字串, 粘贴进去
    c.NotebookApp.open_browser = False # 运行时不打开本机浏览器
    c.NotebookApp.port = 12035 # 使用的端口,随意设置
    c.NotebookApp.enable_mathjax = True # 启用 MathJax
    c.NotebookApp.allow_remote_access = True #允许远程访问
    
  • 最后再启动jupyter notebook
    image.png

    一般来说,在本地计算机浏览器上将红框位置对应的127.0.0.1换成远程服务器的地址即可访问,但是由于远程服务器防火墙的作用,在本地浏览器上无法打开,此时最简单的方法是在本地建立一个ssh通道:
    ssh -p remote_port remote_user@remote_ip -L127.0.0.1:1234:127.0.0.1:12035 # -L表示本地映射转发
    

-L 表示本地映射转发,选项值代表ssh客户端和服务端转发的端口,这里选取1234为本地jupyter监听端口。remote_user@remote_ip 用实际的远程帐户和远程地址替换
这样本地浏览器输入127.0.0.1:1234即可,1234可以自定义端口选取。选取1024-65535之间的并且尚未使用的端口号即可,此时登陆要求输入密码即可

3. jupyter使用anaconda虚拟环境

本机测试不能使用nb_conda,会造成conda损坏
首先要有一个虚拟环境,并激活它,这里虚拟环境名称为py3tf14, python版本指定为3.6
创建虚拟环境:

conda create -n py3tf14 python=python3.6

激活

conda activate py3tf14

之后要安装ipykernel
使用pip或者conda都行

pip install ipykernel
python -m ipykernel install --user --name=py3tf14#那个环境的名字

你可能感兴趣的:(jupyter使用远程服务器调试)