生信 | Linux安装jupyter notebook

2021-06-10  本文已影响0人  生信卷王

写在前面

如果你已经看过很多教程,依然打不开jupyter notebook,请直接看下面的【意外情况】的解决办法,一定能帮到你。

安装jupyter notebook

jupyter notebook
pip install jupyter
jupyter notebook --generate-config
cd ~ && ls -a
cd .jupyter && ll
    total 52
    -rw-rw-r-- 1 yuanf yuanf 52114 May 10 20:59 jupyter_notebook_config.py
    -rw-rw-r-- 1 yuanf yuanf    26 May  8 15:49 migrated
    drwxr-xr-x 1 yuanf yuanf   160 Mar 24 19:24 nbconfig

配置文件

ipython
In [1]: from notebook.auth import passwd      #导入包
In [2]: passwd()                              #调用包
Enter password:                              #输入密码,用于后面登陆jupyter notebook
Verify password:                              #确认密码
Out[2]: 'sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274'  #这段是密钥,复制下来等会用
exit() #退出
vim jupyter_notebook_config.py
#在任意地方加上如下内容
c.NotebookApp.ip = '*'  #允许任何ip去访问我们的jupyter notebook
c.NotebookApp.password = u'sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274'  #u后面加上你复制的密钥
c.NotebookApp.open_browser = False    #因为是在linux,就不让他打开浏览器了
c.NotebookApp.port = 8888    #随便指定一个端口,如果这个端口被占用,jupyter会加1重新找端口,直到找到为止
c.NotebookApp.allow_remote_access = True  #允许远程控制
c.NotebookApp.notebook_dir = u'路径'  #设置你打开jupyter notebook的时候想显示的位置,可以设置成经常使用的路径
#配置完记得保存

启动jupyter notebook

jupyter notebook
#先看一眼8888端口有没有被占用,不然被占用后jupyter会提示并搞一个新端口,记住它
#然后【Ctrl + C】停止,再挂在后台,防止terminal关闭,端口也关闭
nohup jupyter notebook &
http://address_of_remote:8888

意外情况

在windows下远程访问jupyter notebook显示无法正常访问怎么办?

有些服务器可能只开放一个对外的端口,但是我们通过终端访问服务器需要一个对外端口,开启jupyter服务又需要一个端口,这样就需要同时占用两个端口才行。
举个例子,服务器为了保证安全性只开放了一个对外的端口,22号端口,我们使用终端通过22号端口登录到服务器上打开jupyter,jupyter创建的端口是8888号,但是服务器没有对外开放8888号端口,所以即使打开了jupyter,外面也无法正常访问。
如果把jupyter的端口号改为22号,由于我们登录终端的时候正在占用22号,所以jupyter就会提示端口已被占用,无法创建。
网上有很多教程说可以通过修改防火墙设置来开放端口,修改防火墙设置一般都需要管理员权限,但是通常我们使用服务器的时候大多数情况下是不可能有管理员权限的,这时候我们可以使用端口映射来解决这个问题。

解决办法:

在windows下打开DOS,输入:
ssh -N -f -L localhost:9999:localhost:8888 -p 端口号 username@远程地址
#locahost:9999是指本地地址,localhost:8888是指远程地址,其中8888是在linux我们为jupyter notebook开启的端口
#-p 端口号 username@远程地址是什么后面的看下面截图
#例如:
ssh -N -f -L localhost:9999:localhost:8888 -p 22 yuanf@114.212.169.49
#这时候DOS让输入密码,这个密码不是设置jupyter notebook的密码,而是我们登录liunx账户的密码
localhost:9999

就可以看到jupyter notebook的登录界面了,输入密码即可登录。最后收藏一下网页,以便下次访问

值得一提的是:

如果实验室服务器意外重启,需要重新在Linux下启动jupyter notebook,并在DOS下重新映射,只跑下面的代码就可以了

# 在linux里面运行下面的代码
nohup jupyter notebook &
# 在windows里面运行下面的代码,locahost:9999是指本地地址,localhost:8888是指远程地址
ssh -N -f -L localhost:9999:localhost:8888 -p 22 yuanf@114.212.169.49
上一篇下一篇

猜你喜欢

热点阅读