[python] 多python版本服务器端jupyter-notebook映射到本地


因为实习的地方有些数据在服务器上,代码也要放到服务器上跑,
但是 把数据拷到本地-本地写代码-代码放上服务器-在服务器调试太麻烦了,所以想把jupyter映射到本地。
本以为很简单,没想到因为服务器上python版本管理得不太好,加上对linux不熟悉,所以踩了大半天坑,记一下防止再踩。

注:#后是服务器上的代码,$后是本地终端的代码。

0.基本信息

  • 服务器版本
# cat /proc/version

Linux version 3.10.0-327.el7.x86_64 (mockbuild@x86-ol7-builder-01)
(gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) )

  • 服务器python版本
    2.7,3.3,3.6,3.7都有…
    平常使用的是3.7,对应的pip是pip3

  • 本地版本

$ sw_vers

ProductName: Mac OS X
ProductVersion: 10.13.5
BuildVersion: 17F77

1. 安装、试用Jupyter

  • 安装
# pip3 install jupyter
  • 试用
# jupyter-notebook

然而报错了,未找到命令... (如果没报错就直接看第二步)

尝试1 - 失败

  • 再安装
    考虑到服务器上的python版本比较多,所以百度了一通,找到这个,重新装了jupyter。
# python3 -m pip install jupyter
  • 再试用
# jupyter-notebook

还是报错,但是为什么对应的是python3.6?在这里插入图片描述

尝试2 - 失败

又百度了一通,发现这个,跟着查了python的路径,是/usr/bin/python
再查一下jupyter notebook的kernel环境,并顺着网线爬过去:

# jupyter kernelspec list

在这里插入图片描述

# cd /root/.local/share/jupyter/kernels/python3
# vi kernel.json 

在这里插入图片描述
python地址并没有错……

尝试3 - 成功

又又百度了一通,没有找到解决方案,只好回去看报错,发现罪恶的源头在/usr/local/bin/jupyter-notebook,继续顺着网线爬过去。

# cd /usr/local/bin/
# vi jupyter-notebook

在这里插入图片描述
所以notebook的定位是/usr/local/bin/python3,爬过去!

# cd /usr/bin/
# ls -l | grep python3

python3 -> /usr/local/python/bin/python

原来jupyter notebook链接的是/usr/local/python/bin/python,而我需要用的python3.7在/usr/local/python37/bin/python3.7,所以有两个解决方案:

  1. 改jupyter-notebook的代码
    把第一行的声明改成#!/usr/local/bin/python3
    (但是不知道为什么失败了)
  2. 改python3的链接 参考
# rm -rf /usr/local/bin/python3
# ln -s /usr/local/python37/bin/python3.7 /usr/local/bin/python3

再试着启动jupyter-notebook,成功。

2. 映射到本地

综合参考一参考二,试了一下,最终选择了这个方案:

$ ssh root@*ip -L 127.0.0.1:1234:127.0.0.1:8888 
# jupyter notebook --no-browser --port=8888 --allow-root

*ip为服务器的地址,1234是想要映射到本地的地址(可改),8888是想要映射到服务器上的地址(可改,但要与打开时指定的port对应)。
在这里插入图片描述
然后复制url,把localhost:后面的四位数改成1234,打开本地的浏览器粘贴进地址栏,就可以了。

最后,祭上混乱的python……
在这里插入图片描述

3. update-多核jupyter

# python2 -m pip install ipykernel
# python2 -m ipykernel install --user
  • python 3.5/python3.7共存
    思路: 现在对应的是3.7,复制3.7的kernel文件, 改里面的细节。
# jupyter kernelspec list  #查看kernel文件的位置
# cd /root/.local/share/jupyter/kernels/ #进入
# ll #查看该文件夹下的子文件夹
# cd ./python3 #进入python3文件夹里
# ll #查看该文件夹下有啥

在这里插入图片描述
可以发现每个kernel就是一个文件夹,文件夹里对应一个json文件,所以如法炮制,在/root/.local/share/jupyter/kernels/下新建文件夹(python3.5),在新建的文件夹里复制3的kernel.json,再修改里面的细节。

# mkdir /root/.local/share/jupyter/kernels/python3.5
# cp -p /root/.local/share/jupyter/kernels/python3/kernel.json /root/.local/share/jupyter/kernels/python3.5
# cd /root/.local/share/jupyter/kernels/python3.5
# vi kernel.json

修改框出来的两个地方就好啦!
在这里插入图片描述
done!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值