• 离线环境下,该如何安装Anaconda、配置JupyterNotebook?


    Jupyter Notebook是基于网页的用于交互计算的应用程序。可被应用于全过程计算:开发、文档编写、运行代码和展示结果。——Jupyter Notebook官方介绍

    简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中「直接」编写和运行代码,代码的运行结果也会直接在代码块下显示。喜欢记得收藏、点赞、关注。

    注:文末提供技术交流方式

    安装

    墙裂建议通过安装Anaconda来解决Jupyter Notebook的安装问题,因为Anaconda已经自动为你安装了Jupter Notebook,还有python中超过180个科学包及其依赖项。

    本文就手把手地教大家如何在离线环境下安装Anaconda、配置Jupyter Notebook并安装一些有用的Jupyter扩展组件(jupytext、Nbextensions)

    1. 环境准备

    1台Linux服务器

    操作系统:RedHat 6.8 或者 CentOS 7.2(只在这两个环境下测试过,没有问题,其他操作系统应该也可以)

    2. 安装anaconda

    2.1 准备安装包

    Anaconda3-5.2.0-Linux-x86_64.sh

    下载地址:https://repo.anaconda.com/archive/

    2.2 添加jupyteradmin用户

    以下为root用户操作

    groupadd jupyter
    useradd -g jupyter jupyteradmin
    passwd jupyteradmin
    
    • 1
    • 2
    • 3

    2.3 创建/jupyter目录

    mkdir -p /jupyter/data  /jupyter/log
    chown -R jupyteradmin:jupyter /jupyter
    chmod -R 775 /jupyter
    
    • 1
    • 2
    • 3

    2.4 安装anaconda

    切换为 jupyteradmin 用户

    su - jupyteradmin
    
    • 1

    安装Anaconda3

    bash Anaconda3-5.2.0-Linux-x86_64.sh
    
    • 1

    接下来会打印许可条款,输入yes即可,还会询问是否修改安装位置,如下所示:

    Anaconda3 will now be installed into this location:
    /home/jupyteradmin/anaconda3
    
      - Press ENTER to confirm the location
      - Press CTRL-C to abort the installation
      - Or specify a different location below
    
    [/home/jupyteradmin/anaconda3] >>>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    我这里点击ENTER,默认安装路径,盆友们也可以根据自己情况修改安装位置。

    安装结束后,询问是否将Anaconda3的安装位置加入/home/jupyteradmin/.bashrc文件中的PATH环境变量,选择yes,如下所示:

    Do you wish the installer to prepend the Anaconda3 install location to PATH in your /home/jupyteradmin/.bashrc ? [yes|no]
    [no] >>> yes
    
    • 1
    • 2

    又询问是否安装Microsoft VSCode,选择no.

    Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]
    >>> no
    
    • 1
    • 2

    最后,千万别忘了执行下面的source命令,使.bashrc文件生效:

    source .bashrc
    
    • 1

    2.5 验证anaconda是否安装成功

    Linux系统自带的python版本为 2.7.x,而我们安装的Anaconda-5.2.0 对应python版本为3.6.5,因此可以通过python的版本号来判断anaconda是否安装成功。

    因为我们是在jupyteradmin 用户下安装的anaconda,所以一定还要在jupyteradmin 用户下,在命令行输入python -V 。如下图所示:

    [jupyteradmin@localhost ~]$ python -V
    Python 3.6.5 :: Anaconda, Inc.
    
    • 1
    • 2

    结果显示为Python 3.6.5 :: Anaconda, Inc.,说明Anaconda安装成功

    另外,利用pip listconda list可以查看anaconda所集成的各种科学包及其版本号,其中包括 jupyter notebook相关包以及常见的python包。

    [jupyteradmin@localhost ~]$ pip list
    Package                            Version  
    ---------------------------------- ---------
    alabaster                          0.7.10   
    anaconda-client                    1.6.14   
    anaconda-navigator                 1.8.7    
    anaconda-project                   0.8.2    
    asn1crypto                         0.24.0   
    astroid                            1.6.3    
    astropy                            3.0.2    
    attrs                              18.1.0   
    Babel                              2.5.3      
    ## 未完
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3. 配置 jupyter notebook

    3.1 生成密钥

    进入python 命令行,输入下列命令获取密钥 :

    from notebook.auth import passwd
    passwd()
    
    • 1
    • 2

    这里需要输入两次密码,最好是大小写字母与数字、特殊字符的组合,比如Abc1234!,注意:这个密码就是浏览器端访问jupyter的密码,一定要记住喽!

    输入两次密码之后,就会生成密钥(格式为:‘sha1: 字符串’),一定记得复制该密钥,后续要加入配置文件。

    3.2 生成配置文件

    退出python 命令行,在终端输入jupyter notebook --generate-config,如下

    [jupyteradmin@localhost ~]$ jupyter notebook --generate-config
    
    • 1

    此时会显示配置文件所在目录: /home/jupyteradmin/.jupyter/jupyter_notebook_config.py

    3.3 修改配置文件

    [jupyteradmin@localhost ~]$ vim /home/jupyteradmin/.jupyter/jupyter_notebook_config.py
    
    • 1

    在文件末尾添加内容

    c.NotebookApp.ip = '*'  
    c.NotebookApp.open_browser = False   
    c.NotebookApp.port = 8888
    c.NotebookApp.password = u'sha1:6f693062c956:82d4c89aacef5468d7872f5f362e5507754c76e7'   
    c.ContentsManager.root_dir = '/jupyter/data'   
    c.PAMAuthenticator.encoding = 'utf8'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    第四行 c.NotebookApp.password参数的取值就是3.1步你所生成的密钥哦!注意 'sha1:字符串’前面还有一个u。

    3.4 启动 jupyter notebook

    在终端输入jupyter notebook

    [jupyteradmin@localhost ~]$ jupyter notebook
    
    • 1

    输出如下:

    [I 10:25:59.651 NotebookApp] Writing notebook server cookie secret to /home/jupyteradmin/.local/share/jupyter/runtime/notebook_cookie_secret
    [W 10:25:59.818 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
    [I 10:25:59.847 NotebookApp] JupyterLab beta preview extension loaded from /home/jupyteradmin/anaconda3/lib/python3.6/site-packages/jupyterlab
    [I 10:25:59.847 NotebookApp] JupyterLab application directory is /home/jupyteradmin/anaconda3/share/jupyter/lab
    [I 10:25:59.849 NotebookApp] Serving notebooks from local directory: /jupyter/data
    [I 10:25:59.850 NotebookApp] 0 active kernels
    [I 10:25:59.850 NotebookApp] The Jupyter Notebook is running at:
    [I 10:25:59.850 NotebookApp] http://localhost:8888/
    [I 10:25:59.850 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    从倒数第三行可以看到:The Jupyter Notebook is running at: http://localhost.localdomain:8888/ 。在浏览器访问http://服务器ip:8888/,输入生成密钥时所用的密码,就可以访问jupyter notebook的页面啦!

    要将jupyter notebook 在后台挂起,就执行:

    nohup jupyter notebook &
    
    • 1

    这时,jupyter的运行输出结果就保存在了nohup.out文件。

    3.5 其他设置

    为了提升安全性,运行jupyter notebook的服务器可以做如下防火墙配置:

    • 只允许特定IP客户端访问jupyter页面。

      需要设置ip白名单控制。

    • 允许127.0.0.1(本地主机)能够连接49152~65535的端口。

    服务器使用这些端口与notebook内核通信,内核通信端口是由ZeroMQ随机选择的,每个内核可能需要多个连接,因此必须有大范围的可访问端口。

    • 配置Nginx双向认证

    jupyter notebook 的访问需要添加个人证书鉴权,提高平台的安全性。

    4.安装 jupyter扩展组件

    安装前先关闭 jupyter notebook 进程。

    4.1 准备安装包

    msgpack-1.0.0-cp36-cp36m-manylinux1_x86_64.whl

    attrs-20.2.0-py2.py3-none-any.whl

    markdown_it_py-0.5.4-py3-none-any.whl

    toml-0.10.1-py2.py3-none-any.whl

    jupytext-1.6.0.tar.gz

    jupyter_highlight_selected_word-0.2.0-py2.py3-none-any.whl

    jupyter_contrib_core-0.3.3-py2.py3-none-any.whl

    jupyter_latex_envs-1.4.6.tar.gz

    jupyter_nbextensions_configurator-0.4.1.tar.gz

    jupyter_contrib_nbextensions-0.5.1-py2.py3-none-any.whl

    ipyparallel-6.3.0-py3-none-any.whl

    4.2 安装部署

    使用 jupyteradmin 用户操作

    4.2.1 安装Jupytext

    注意下面包的安装顺序不要变,因为它们前后有依赖关系。

    pip install msgpack-1.0.0-cp36-cp36m-manylinux1_x86_64.whl
    pip install attrs-20.2.0-py2.py3-none-any.whl
    pip install markdown_it_py-0.5.4-py3-none-any.whl
    pip install toml-0.10.1-py2.py3-none-any.whl
    pip install jupytext-1.6.0.tar.gz
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.2.2 安装Nbextensions

    pip install jupyter_highlight_selected_word-0.2.0-py2.py3-none-any.whl
    pip install jupyter_contrib_core-0.3.3-py2.py3-none-any.whl
    pip install jupyter_latex_envs-1.4.6.tar.gz
    pip install jupyter_nbextensions_configurator-0.4.1.tar.gz
    pip install jupyter_contrib_nbextensions-0.5.1-py2.py3-none-any.whl
    jupyter contrib nbextension install --user
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.2.3 安装ipyparallel

    pip install ipyparallel-6.3.0-py3-none-any.whl
    ipcluster nbextension enable --user
    
    • 1
    • 2

    4.2.4 重启jupyter notebook

    最后,在终端输入nohup jupyter notebook &命令,重新启动jupyter notebook ,就可以在页面上看到增加了jupytext和Nbextensions的功能入口啦!撒花~

    推荐文章

    技术交流

    欢迎转载、收藏、有所收获点赞支持一下!数据、代码可以找我获取

    在这里插入图片描述

    目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

    • 方式①、添加微信号:dkl88191,备注:来自CSDN
    • 方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群
  • 相关阅读:
    高级功能的PID控制器在电离规等真空计线性化处理中的应用
    UE4 EQS环境查询 学习笔记
    利用mybatis框架时,常见的三种sql注入方式
    渲染如何做到超强渲染?MAX插件CG MAGIC中的渲染功能!
    小侃设计模式(十三)-策略模式
    3、JSP——Servlet、IDEA创建Web项目、IDEA创建JSP页面
    应用案例|基于三维机器视觉的机器人引导电动汽车充电头自动插拔应用方案
    【算法leetcode】1572. 矩阵对角线元素的和(多语言实现)
    计算机毕业设计SSMJAVA高校田径运动会管理【附源码数据库】
    在 history 模式下,为什么刷新页面会出现404?
  • 原文地址:https://blog.csdn.net/weixin_38037405/article/details/126439185