建立自己的Jupyter notebook远程服务器

Jupyter notebook基于浏览器,提供了一种比ipython更方便的程序编写和测试环境。同时包括Markdown格式的文本编辑功能。对于记录原始数据处理很有帮助。如果你们课题组有一个远程服务器,你希望利用远程服务器的强大计算能力,或者数据不方便下载到本地,同时你又想利用Jupyter notebook的功能,下面提供了一种思路:

  1. 生成默认配置文件
jupyter notebook --generate-config
  1. 生成访问密码
    终端输入ipython,设置你自己的jupyter访问密码,注意复制输出的sha1:xxxxxxxx密码串。
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:xxxxxxxxxxxxxxxxx'
  1. 修改vim ~/.jupyter/jupyter_notebook_config.py中对应行如下:
c.NotebookApp.ip='*' #设置所有ip地址皆可访问
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
  1. 在服务器上启动jupyter notebook
  2. 命令行界面显示的地址到本地浏览器中
to login with a token下面一行的http://localhost:8888/?token=xxxxxxxx

以上方法可能不成功,浏览器显示无法访问界面。下面给出解决办法:

cmd打开本地终端,将本地的8888端口与远程服务器的8888端口联系起来
ssh -f username@serverIP -N -L 8888:localhost:8888
其中: -N 告诉SSH没有命令要被远程执行; -f 告诉SSH在后台执行; -L 是指定port forwarding的配置,远端端口是8888,本地的端口号的8888。

英文原文档链接

以上就能正常打开远程服务器上的jupyter notebook了。接下来要新建虚拟环境及相应的kernel。

  1. 先创建名为yourownname的环境
conda create -n yourownname python=3
  1. 下面开始添加kernel,首先切换到需要配置的环境
conda activate yourownname
  1. 安装ipykernel,注意这里一定要用conda安装,血与泪的教训,否则用pip安装会导致jupyter notebook里面import包的路径与命令行中conda install package的路径不一样(很不好改,我网上找了好久的办法,更改kernel.json的路径后,会导致kernel准备失败)
conda install ipykernel
  1. 手动添加这一kernel
python -m ipykernel install --user --name yourownname --display-name "yourownname"
  • --name被用于jupyter内部,这一命令将覆盖具有相同名称的kernel
  • --display-name指定jupyter notebook中显示的名字

其他:可以使用命令jupyter kernelspec list查看当前所有可用的kernel;删除不再需要的 kernel:jupyter kernelspec uninstall kernel_name

另外需要注意在新建的环境中不能使用jupyter notebook命令来打开jupyter notebook,需要切换到base环境中使用。
发布了14 篇原创文章 · 获赞 4 · 访问量 4333

猜你喜欢

转载自blog.csdn.net/Zhuanzhu22nian/article/details/93351818