📖Notebook 配置

349 阅读4分钟

开始之前安装相应环境:

  1. 安装 Anaconda 或者 miniconda
  1. 创建 conda 环境并激活
conda create jupyter_notebook python=3.9
conda activate jupyter_notebook

Shell

  1. 安装 jupyter notebook conda install jupyter notebook
  1. 生成 Notebook配置文件 jupyter notebook --generate-config 这个命令会在用户主目录下(通常是 ~/.jupyter/)生成一个名为 jupyter_notebook_config.py 的文件。它会提示配置文件的路径,例如 /home/your_username/.jupyter/jupyter_notebook_config.py

Notebook 指定默认启动目录

通过修改 ~/.jupyter/jupyter_notebook_config.py 文件中的 c.ServerApp.root_dir 配置项,现在可以指定 Jupyter Notebook 启动时直接进入想要的目录。

配置密码登录

Jupyter Notebook 从 token 认证切换到了密码认证。这涉及到:

  1. 使用 ipython 生成 argon2 格式的密码哈希值。Jupyter Notebook 不会直接存储明文密码,而是存储密码的哈希值。需要使用 IPython 来生成这个哈希值。
    1. 启动 IPython 解释器 python -m IPython 或者直接输入 ipython (如果安装了 IPython)
    2. 在 IPython 中生成哈希值, 在 IPython 提示符 In [1]: 后面,输入以下 Python 代码
      1. from notebook.auth import passwd
        passwd()
        # 会提示输入要设置的密码两次
        # 成功后,它会输出一串密码哈希值
        # 输入 exit() 并按回车
        
      2. Python
  1. 在配置文件中,将 c.ServerApp.password 设置为这个哈希值。
  1. c.ServerApp.password_required 设置为 True,强制要求密码登录。
  1. c.ServerApp.token 设置为 ''(空字符串)以禁用 token 认证。
  1. c.ServerApp.allow_unauthenticated_access 设置为 False,以强制进行认证。

Python内核配置


在一个 Conda 环境中安装了特定版本的 Python(比如 python=3.9),并在该环境中启动 Jupyter Notebook 时,默认情况下,新创建的 Notebook 会使用该环境中的 Python 3.9 作为其内核。

在 Jupyter Notebook 中使用其他版本的 Python 内核

如果想在同一个 Jupyter Notebook 中使用其他版本的 Python,或者说,想让 Jupyter Notebook 能够识别并切换到其他 Conda 环境中的 Python 版本,需要做以下几件事:

核心概念:IPykernel

Jupyter Notebook 并不是直接运行 Python 代码,而是通过一个叫做 IPykernel 的程序来与底层的 Python 环境进行交互。每个希望在 Jupyter Notebook 中使用的 Python 环境,都需要安装相应的 IPykernel,并将其注册到 Jupyter Notebook 中。

步骤:

假设现在有一个 Conda 环境,叫做 my_python_3.10_env,里面安装了 Python 3.10,想让 Jupyter Notebook 也能用它。

  1. 在目标 Conda 环境中安装 ipykernel 首先,需要激活想要使用的 Python 版本的 Conda 环境,并在该环境中安装 ipykernel
    1. # 激活的目标环境,比如一个名为 my_python_3.10_env 的环境
      conda activate my_python_3.10_env
      # 在这个环境中安装 ipykernel
      conda install ipykernel
      
    2. Shell
  1. 将该环境注册为 Jupyter 内核: 安装 ipykernel 后,需要告诉 Jupyter Notebook 这个环境的存在 python -m ipykernel install --prefix=$CONDA_PREFIX --name python_3.10 --display-name "pp_3.10"
      • python -m ipykernel install:这是注册内核的命令。
      • $CONDA_PREFIX:这是一个环境变量,它会自动指向当前活跃的 Conda 环境的安装路径(例如 /home/{user_name}/anaconda3/envs/py_3.10)。使用它能确保内核被注册到
      • -name my_python_3.10_env:给这个内核一个内部名称,通常与 Conda 环境名称相同。
      • -display-name "Python (3.10)":这是在 Jupyter Notebook 界面中显示的名称

这样做了之后:

当启动 Jupyter Notebook 后:

  • 创建新 Notebook 时: 在 Jupyter Notebook 的主界面,点击 "New" 按钮时,会在下拉菜单中看到刚刚注册的内核(例如 "Python (3.10)"),可以选择它来创建一个使用该 Python 版本的 Notebook。
  • 切换现有 Notebook 的内核: 如果已经打开了一个 Notebook,也可以在 Notebook 内部通过菜单栏的 Kernel -> Change kernel 选项来切换到其他已注册的内核。

可能因为诡异的权限问题,导致新的kernel不生效,可以尝试安装 nb_conda_kernels conda install nb_conda_kernels

 

查看所有kernel jupyter kernelspec list 删除kernel jupyter kernelspec uninstall kernel_name

Kernel 的Python版本 VS notebook环境Python版本

在notebook cell里输入 !which python, 指向的是,当前运行notebook的环境的Python

在cell里输入如下代码,输出的是kernel的Python的版本

import sys

print("Python version:", sys.version)
print("Executable path:", sys.executable)

Python

 

**

**

**

**免密登录服务器/服务器登录加 AuthUbuntu开荒**

相关文章 :

**目录

开始之前安装相应环境:Notebook 指定默认启动目录配置密码登录Python内核配置在 Jupyter Notebook 中使用其他版本的 Python 内核

**

©2021-2025 sunpcm. All rights reserved.

Powered byNotionNext 4.8.6

/article/notebook