Juypter Notebook 的安装、配置、部署

基本介绍

这是一个笔记本软件/文本编辑器,其次它有一系列的功能,使得它非常适合写作科学类的文章。
约等于 Python 交互式命令行 + markdown,结合 numpy、plotly.py 等科学计算相关的库,实现类似 matlab 的效果。

安装

方法一:通过 anaconda 安装

这是一个开源的 Python 发行版本,其包含了conda、Python等180多个科学包及其依赖项,当然也包含了 Jupyter notebook。
在其 官网 上提供了 Mac、Linux、Windows 在内的多个系统的安装包。

方法二:通过 pip 安装

如果 Jupyter 部署服务器上,所以安装 anaconda 并不见得方便。那么可以使用 pip 来安装

pip install jupyter

安装验证

命令行输入

jupyter notebook

你可能会看到类似这样的提示

[I 09:38:52.280 NotebookApp] The Jupyter Notebook is running at:
[I 09:38:52.280 NotebookApp] http://localhost:8888/
[I 09:38:52.280 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

根据这里的提示,访问对应的网址即可对 Jupyter 进行简单的使用。

Jupyter 的配置

完成了安装后,你可能需要根据自己的需求进行一些配置,首先你需要生成配置文件

jupyter notebook --generate-config
# 这条指令会在 ~/.jupyter 下生成一个配置文件 jupyter_notebook_config.py

几个重要的配置项包括:

# TCP/IP 相关配置
## 授权
c.NotebookApp.allow_origin = '*' # 设置访问的允许来源,* 表示接受所有来源
c.NotebookApp.allow_remote_access = False # 是否支持远程访问
## HTTPS,但是建议通过 Nginx 或 Apache 进行代理,而不通过 Jupyter 直接处理 HTTPS 请求
c.NotebookApp.certfile = '' # 证书文件路径
c.NotebookApp.client_ca = '' # 公钥证书路径
c.NotebookApp.keyfile = '' # 私钥文件路径
## 地址设置
c.NotebookApp.ip = 'localhost' # 监听的 IP 地址
c.NotebookApp.port = 8888 # 监听的地址
c.NotebookApp.custom_display_url = '' # 显示的域名

# 本地文件配置
c.ContentsManager.untitled_notebook = '未命名' # 新建笔记本的默认名称
c.NotebookApp.notebook_dir = '/Users/antony/Notes' # 设置笔记本文件保存的路径

# 密码配置
c.NotebookApp.password = 'sha1:c05fe7fe7152:12cf0fe1c689112cc3451d1b13700af3fafadc1f'
# 设置访问密码,格式为 type:salt:hashed-password,可以通过 from notebook.auth import passwd; passwd() 来生成
c.NotebookApp.token = '<generated>' # 用于首次登陆 Jupyter 服务时进行校验的密码,默认是一个自动生成的字符串,在 Jupyter 运行时打印的信息中可以看到

配置 Nginx 代理

我的做法是 Jupyter Notebook 在本地运行,可以通过 localhost 来进行访问,再通过 Nginx 将 https 请求进行代理转发。
在配置 Nginx 之前,请在 Jupyer Notebook 的配置文件中,将 allow_origin 做相应调整,最简单的就是改为 *

upstream notebook {
    server localhost:8888;
}

server {
    # 监听 7123 端口,支持 SSL,当然也可以不支持 SSL
    listen 7123 ssl;
    # 监听 7124 端口,使用 http 协议
    listen 7124;

    # 如果要支持 SSL,需要配置相关的证书、密钥文件地址
    ssl_certificate     /etc/nginx/cert/certificate.crt;
    ssl_certificate_key /etc/nginx/cert/private.key;
	
	# 设置 Header
    add_header Strict-Transport-Security max-age=15768000;

	# 设置基础地址访问
    location / {
        proxy_pass            http://notebook;
        proxy_set_header      Host $host;
    }
	
	# 设置相关接口请求,需要增加对 websocket 的支持,增加相关 header
    location ~ /api/kernels/ {
        proxy_pass            http://notebook;
        proxy_set_header      Host $host;
        # websocket 支持
        proxy_http_version    1.1;
        proxy_set_header      Upgrade "websocket";
        proxy_set_header      Connection "Upgrade";
        proxy_read_timeout    86400;
    }
	
	# 设置终端接口请求,需要增加对 websocket 的支持
    location ~ /terminals/ {
        proxy_pass            http://notebook;
        proxy_set_header      Host $host;
        # websocket 支持
        proxy_http_version    1.1;
        proxy_set_header      Upgrade "websocket";
        proxy_set_header      Connection "Upgrade";
        proxy_read_timeout    86400;
    }
}

设置 Jupyter Notebook 的开机自启动

这里以 Ubuntu 系统为例,新增 /etc/systemd/system/jupyter.service 文件

[Unit]
    Description=Jupyter Notebook
[Service]
    Type=simple
    ExecStart=/path/to/jupyter notebook --no-browser
    # 需要将 /path/to 替换成 jupyter 的安装路径
    # 建议在 Jupyter 的配置文件中,将 NotebookApp.token 修改为一个固定值
    User=你的用户名
    Group=用户群组
    WorkingDirectory=你的 home 目录
[Install]
    WantedBy=multi-user.target

启用这个服务

sudo systemctl start jupyter
sudo systemctl enable jupyter

参考文档

  1. Jupyter Notebook and Nginx Setup
  2. A systemd script for user to run a jupyter notebook as daemon
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在云端部署Jupyter Notebook,你可以按照以下步骤进行操作: 1. 选择一个云服务提供商,比如Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Platform (GCP)等。这些云服务提供商都提供了可用于部署Jupyter Notebook的虚拟机实例。 2. 在所选云服务提供商上创建一个虚拟机实例。你可以选择一个合适的操作系统,如Ubuntu、CentOS等。 3. 安装Anaconda或Miniconda。这是因为Anaconda是一个开源的Python发行版,内置了Jupyter Notebook和其他常用的Python库。你可以从Anaconda官方网站下载适用于你的操作系统的安装程序,或者选择Miniconda,它是一个更轻量级的版本。 4. 创建一个新的conda环境并激活它。在命令行中运行以下命令: ``` conda create -n myenv python=3.8 conda activate myenv ``` 这将创建一个名为"myenv"的新环境并激活它。 5. 安装Jupyter Notebook。在conda环境中运行以下命令: ``` conda install jupyter ``` 6. 生成Jupyter Notebook配置文件。运行以下命令以生成默认配置文件: ``` jupyter notebook --generate-config ``` 7. 编辑Jupyter Notebook配置文件。使用文本编辑器打开生成的配置文件(通常位于`~/.jupyter/jupyter_notebook_config.py`),并将以下行取消注释并修改为以下内容: ``` c.NotebookApp.ip = '0.0.0.0' c.NotebookApp.port = 8888 c.NotebookApp.allow_remote_access = True c.NotebookApp.open_browser = False ``` 这将允许从远程访问Jupyter Notebook,并在所有可用IP地址的8888端口上运行。 8. 启动Jupyter Notebook服务器。在命令行中运行以下命令: ``` jupyter notebook ``` 这将启动Jupyter Notebook服务器并显示一个URL。 9. 通过使用云服务提供商提供的网络配置,将服务器的公共IP地址和端口8888映射到公共网络上。 10. 现在,你可以通过在浏览器中输入服务器的公共IP地址和端口8888来访问Jupyter Notebook。 请注意,这只是部署Jupyter Notebook的基本步骤。在实际情况下,你可能需要进一步配置网络和安全设置,并根据云服务提供商的特定要求进行操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值