Jupyter的几个设置

in #cn4 years ago

在前面的文章中介绍了Jupyter,但在进一步的使用中,发现一些需要设置/安装/配置的选项,比如:如何禁用默认的Terminal窗口,如何让多个用户使用Jupyter,如何在Jupyter中使用Turtle画图等。下面总结如下。

禁用terminal

在默认情况下,打开Jupyter窗口后,可以新建一个终端窗口。在终端窗口中可以运行各种Linux命令。在终端窗口中使用的是运行Jupyter的用户,因此具有和该用户同样的权限。因此,如果打算和别人分享Jupyter,最好不要用权限过大的用户运行Jupyter,同时应该禁用终端窗口。不过,严格的讲,这并不能阻止恶意用户运行Linux命令,只要能运行Python脚本,就会有多种方式达到这个目的。但系统安全是一个渐进的过程。至少对于不太熟悉Linux的用户,如果一不小心进入终端窗口,再一不小心误删了文件,不也麻烦吗?

image

要想禁止Linux终端窗口,可以在Jupyter的配置文件(用户根目录下.jupyter/jupyter_notebook_config.py)中添加一行就可以了:

c.NotebookApp.terminals_enabled = False

可以看到,终端已经被禁用。

image

在Jupyter中设定多个账号

默认的配置文件在/home/USERNAME/.jupyter/jupyter_notebook_config.py中。其初始设置非常简单:

c.NotebookApp.allow_origin = '*' #allow all origins
c.NotebookApp.ip = '0.0.0.0' # listen on all IPs

如果想要多个用户共同使用Jupyter,可以为这些用户设置不同的端口,密码,和工作目录。比如:可以创建配置文件:/home/USERNAME/.jupyter/user1_config.py:

c.NotebookApp.allow_origin = '*' 
c.NotebookApp.ip = '0.0.0.0' 
c.NotebookApp.terminals_enabled = False
c.NotebookApp.port = 8890
c.NotebookApp.notebook_dir = '/home/user1/jupyter_notes'

在运行Jupyter的时候指定配置文件:

jupyter notebook --config /home/user1/.jupyter/user1_config.py

依次类推,可以为不同用户创建不同的配置文件,这样就可以彼此之间互不干扰了。

在Jupyter中进行Turtle编程

一直在使用Python Turtle教孩子编程。最近感觉Jupyter特别适合教学,那么怎样在Jupyter中使用Turtle呢?答案是mobilechelonian

首先在Notebook中安装依赖库并进行测试(当然,也可以在终端的命令行窗口中进行):

!pip install mobilechelonian
!pip install matplotlib

import numpy as np
import matplotlib.pyplot as plt

from mobilechelonian import Turtle

from mobilechelonian import prepare_js
prepare_js()

运行以上代码就会安装mobilechelonian。接下来就可以使用Turtle来画图了:

from mobilechelonian import Turtle
t = Turtle()
t.speed(5)
t.pencolor("blue")

for i in range(4):
    t.left(90)
    t.forward(60)

image.png