Linux 下安装和使用 Jupyter Notebook

Jupyter Notebook / Lab 是 Python 开发和数据分析中不可或缺的工具。为了避免环境污染,推荐使用虚拟环境方式安装并启动它。本教程将教你如何:

  • 安装 Python、pip、venv
  • 使用虚拟环境安装 Jupyter
  • 设置登录密码
  • 启动并远程访问
  • 编写一个一键启动脚本,分享给他人使用

⭐️ 一、安装 Python 及相关依赖

在终端执行以下命令:

sudo apt update
sudo apt install python3 python3-pip python3-venv -y

验证是否安装成功:

python3 --version
pip3 --version

⭐️ 二、创建虚拟环境并安装 Jupyter

为了避免污染系统环境,我们使用 venv 创建一个独立环境:

mkdir -p ~/venvs
python3 -m venv ~/venvs/jupyter_env

激活虚拟环境:

source ~/venvs/jupyter_env/bin/activate

安装 JupyterLab(包含 Notebook):

pip install --upgrade pip
pip install jupyterlab

退出虚拟环境

deactivate

⭐️ 三、设置 Jupyter 登录密码(可不设置)

首次设置密码:

jupyter notebook password

系统会提示你输入两次密码,然后将加密后的密码保存到:

~/.jupyter/jupyter_notebook_config.json

⭐️ 四、启动 Jupyter Notebook(远程推荐方式)

推荐在服务器、WSL 等环境中使用如下启动方式:

jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser

jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root

📋 参数说明表

参数含义说明
jupyter lab启动 JupyterLab(现代 Web 界面)
--ip=0.0.0.0监听所有网络接口(允许远程访问)
--port=8888指定端口号(默认 8888,可改为其他如 8889、8890)
--no-browser启动时不自动打开本地浏览器(服务器/WSL 场景常用)
--allow-root允许以 root 用户身份运行(⚠️ 安全考虑下不推荐,调试可用)

然后在浏览器访问:

http://<你的服务器IP>:8888

输入 token 或设置的密码即可访问。
在这里插入图片描述

PS:token 可以在启动服务的终端获取。


⭐️ 五、修改密码

只需重新运行以下命令即可修改:

jupyter notebook password

⭐️ 六、一键安装与启动脚本(推荐)

下面是一个自动化脚本,它会:

  • 安装 Python、pip、venv(如果未安装)
  • 创建虚拟环境并激活
  • 安装 JupyterLab
  • 设置登录密码(首次运行)
  • 启动 Notebook 服务

📜 start_jupyter.sh

#!/bin/bash# 配置路径
VENV_DIR="$HOME/venvs/jupyter_env"
PROJECT_DIR="$HOME/workstation/notebooks"# 检查系统类型并设置包管理器
if [ -f /etc/os-release ]; then. /etc/os-releasecase "$ID" inubuntu|debian)INSTALLER="sudo apt install -y"UPDATE="sudo apt update"PY_PKGS="python3 python3-pip python3-venv";;arch|manjaro)INSTALLER="sudo pacman -S --noconfirm"UPDATE="sudo pacman -Sy"PY_PKGS="python python-pip python-virtualenv";;fedora)INSTALLER="sudo dnf install -y"UPDATE="sudo dnf check-update || true"PY_PKGS="python3 python3-pip python3-virtualenv";;centos|rhel)INSTALLER="sudo yum install -y"UPDATE="sudo yum check-update || true"PY_PKGS="python3 python3-pip python3-virtualenv";;opensuse*)INSTALLER="sudo zypper install -y"UPDATE="sudo zypper refresh"PY_PKGS="python3 python3-pip python3-virtualenv";;alpine)INSTALLER="sudo apk add"UPDATE="sudo apk update"PY_PKGS="python3 py3-pip py3-virtualenv";;*)echo "❌ 不支持的发行版($ID),请手动安装 Python3、pip 和 venv"exit 1;;esac
elseecho "❌ 无法识别系统类型,缺少 /etc/os-release"exit 1
fi# 更新并安装依赖(仅安装缺失组件)
echo "🔧 检查并安装缺失依赖..."
MISSING_PKGS=()
for pkg in $PY_PKGS; doif ! command -v $(echo "$pkg" | cut -d'-' -f1) &>/dev/null; thenMISSING_PKGS+=("$pkg")fi
doneif [ ${#MISSING_PKGS[@]} -gt 0 ]; thenecho "📦 需要安装: ${MISSING_PKGS[*]}"$UPDATE$INSTALLER ${MISSING_PKGS[*]}
elseecho "✅ 所有依赖已安装,跳过安装步骤。"
fi# 确保系统已安装 nodejs(用于构建 JupyterLab)
if ! command -v node &>/dev/null; thenecho "🔧 系统未检测到 nodejs,正在安装..."if command -v apt &>/dev/null; thensudo apt update && sudo apt install -y nodejs npmelif command -v dnf &>/dev/null; thensudo dnf install -y nodejselif command -v pacman &>/dev/null; thensudo pacman -Sy nodejs npm --noconfirmelseecho "❌ 无法自动安装 nodejs,请手动安装后重试"exit 1fi
fi# 创建项目目录(如不存在)
if [ ! -d "$PROJECT_DIR" ]; thenecho "📁 创建项目目录:$PROJECT_DIR"mkdir -p "$PROJECT_DIR"
fi# 创建虚拟环境
if [ ! -d "$VENV_DIR" ]; thenecho "⚙️ 正在创建虚拟环境..."mkdir -p "$VENV_DIR"python3 -m venv "$VENV_DIR"
fi# 激活虚拟环境
source "$VENV_DIR/bin/activate"# 安装 Jupyter
if ! command -v jupyter &> /dev/null; thenecho "📦 正在安装 jupyterlab..."pip install --upgrade pippip install jupyterlab
fiecho "📦 已安装 jupyterlab..."# 在虚拟环境中安装 node/npm
# if ! command -v node &>/dev/null; then
#   echo "🔧 正在为虚拟环境安装 nodejs..."
#   pip install nodejs
# fi# 智能检测是否需要构建 JupyterLab(如未构建或有插件更新)
# 检查是否需要构建
if ! jupyter lab build --dev-build=False --minimize=False --check &>/dev/null; thenecho "🛠️ JupyterLab 正在构建前端资源..."# 优先尝试一次轻量构建jupyter lab build --dev-build=False --minimize=False || {echo '⚠️ 构建失败,尝试最小化配置重试(关闭 dev/minimize)...'# fallback:使用 config.py 设置构建配置(永久生效)JUPYTER_CONFIG_DIR=$(jupyter --config-dir)mkdir -p "$JUPYTER_CONFIG_DIR"cat <<EOF > "$JUPYTER_CONFIG_DIR/jupyter_config.py"
# 自动生成:禁用 dev/minimize 构建以避免内存问题
c.LabBuildApp.minimize = False
c.LabBuildApp.dev_build = False
EOFecho "✅ 写入 Jupyter 配置成功:" "$JUPYTER_CONFIG_DIR/jupyter_config.py"# 再次尝试构建jupyter lab build || echo '❌ 二次构建依然失败,请检查内存或手动构建'}
fi# 设置密码(如未设置)
# CONFIG_JSON="$HOME/.jupyter/jupyter_notebook_config.json"
# if [ ! -f "$CONFIG_JSON" ]; then
#     echo "🔐 第一次使用,请设置登录密码:"
#     jupyter notebook password
# fi# 启动 Jupyter
cd "$PROJECT_DIR"
echo "🚀 启动 Jupyter Notebook..."
if command -v jupyter-notebook &>/dev/null; thenjupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.notebook_dir="$PROJECT_DIR"
elsejupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --ServerApp.root_dir="$PROJECT_DIR"
fi

📆 使用方法

  1. 保存为 start_jupyter.sh
  2. 赋予可执行权限:
    chmod +x start_jupyter.sh
    
  3. 启动:
    ./start_jupyter.sh
    

在这里插入图片描述
PS:因为服务器配置内存只有 2G ,所以构建失败,但是不影响使用。


⭐️ 七、总结

步骤命令或说明
安装 Python + pipsudo apt install python3-pip
创建虚拟环境python3 -m venv ~/venvs/xxx
安装 Jupyterpip install jupyterlab
设置密码jupyter notebook password
启动 Notebookjupyter notebook --ip=0.0.0.0
快捷启动使用上面脚本

🧪 附:JupyterLab vs Notebook 简单对比

对比点JupyterLabJupyter Notebook
界面多标签页、现代化单页、传统
插件系统更强,支持终端、Git、Markdown 预览等较弱
推荐使用✅(轻量时也很方便)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/42376.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【云成本优化案例】K8s计费探针让跨境电商企业节省30%云预算

01. 财务“谜案”&#xff1a;消失的30%云预算 "我们的K8s集群资源利用率高达78%&#xff0c;但业务部门总说云账单对不上。"某跨境电商企业CTO的报案记录&#xff0c;揭开了一场云原生时代的财务谜案。该企业技术团队自查了所有资源配额和HPA配置&#xff0c;却始…

PyTorch 分布式训练(Distributed Data Parallel, DDP)简介

PyTorch 分布式训练&#xff08;Distributed Data Parallel, DDP&#xff09; 一、DDP 核心概念 torch.nn.parallel.DistributedDataParallel 1. DDP 是什么&#xff1f; Distributed Data Parallel (DDP) 是 PyTorch 提供的分布式训练接口&#xff0c;DistributedDataPara…

蓝桥杯[每日一题] 真题:连连看

题目描述 小蓝正在和朋友们玩一种新的连连看游戏。在一个 n m 的矩形网格中&#xff0c;每个格子中都有一个整数&#xff0c;第 i 行第 j 列上的整数为 Ai, j 。玩家需要在这个网格中寻找一对格子 (a, b) − (c, d) 使得这两个格子中的整数 Aa,b 和 Ac,d 相等&#xff0c;且它…

Linux环境下安装部署Docker

windows下连接Linux&#xff1a; 打开终端&#xff1a; //ssh远程连接 ssh root192.168.xx.xx//输入账号密码 root192.168.xx.xxs password: ssh连接成功&#xff01; 安装Docker&#xff1a; //安装Docker yum install -y yum-utils device-mapper-persistent-data lvm2 …

k近邻算法K-Nearest Neighbors(KNN)

算法核心 KNN算法的核心思想是“近朱者赤&#xff0c;近墨者黑”。对于一个待分类或预测的样本点&#xff0c;它会查找训练集中与其距离最近的K个样本点&#xff08;即“最近邻”&#xff09;。然后根据这K个最近邻的标签信息来对当前样本进行分类或回归。 在分类任务中&#…

Appium中元素定位之一个元素定位API

应用场景 想要对按钮进行点击&#xff0c;想要对输入框进行输入&#xff0c;想要获取文本框的内容&#xff0c;定位元素是自动化操作必须要使用的方法。只有获取元素之后&#xff0c;才能对这个元素进行操作。 在 Java 中使用 Appium 定位元素时&#xff0c;可以通过多种方式…

Dify 服务器部署指南

1. 系统要求 在开始部署之前&#xff0c;请确保你的服务器满足以下要求&#xff1a; 操作系统&#xff1a;Linux&#xff08;推荐使用 Ubuntu 20.04 或更高版本&#xff09;内存&#xff1a;至少 4GB RAM存储&#xff1a;至少 20GB 可用空间网络&#xff1a;稳定的互联网连接…

Sa-Token

简介 Sa-Token 是一个轻量级 Java 权限认证框架&#xff0c;主要解决&#xff1a;登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。 官方文档 常见功能 登录认证 本框架 用户提交 name password 参数&#xff0c;调用登…

ADZS-ICE-2000和AD-ICE2000仿真器在线升级固件

作者的话 近期发现有些兄弟的ICE-2000仿真器链接DSP报错&#xff0c;然后test第四步不通过&#xff0c;我就拿我的仿真器也试了一下&#xff0c;发现ADI悄咪咪的在线升级仿真器固件&#xff0c;有些兄弟不会操作&#xff0c;就会导致仿真器升级失败&#xff0c;连不上目标板&a…

C++概述

1 什么是面向对象】 概念上来说&#xff1a;就是以对象(具体的变量)为导向的编程思路 专注于&#xff1a;一个对象具体能实现哪些过程(哪些功能) 面向对象 n * 面向过程 结论&#xff1a;面向对象需要做的事情 1&#xff1a;我们要想清楚&#xff0c;我们现在需要编写一个…

Java 大视界 -- 基于 Java 的大数据隐私计算在医疗影像数据共享中的实践探索(158)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

数字化如何赋能食品抽检全流程升级,助力食品安全监管现代化

食品安全是关乎民众健康和社会稳定的重要问题。食品抽检作为保障食品安全的核心监管手段&#xff0c;通过对食品生产、加工、销售等环节的随机抽样检测&#xff0c;及时发现潜在的食品安全问题&#xff0c;防止不合格产品流入市场&#xff0c;同时为政府监管、企业自查和消费者…

HBase入门教程

HBase入门教程 HBase是一个开源的、分布式的、版本化的非关系型数据库&#xff0c;是Apache Hadoop生态系统的重要组成部分。本文将全面介绍HBase的基础知识&#xff0c;帮助你快速入门。 文章目录 HBase入门教程1. HBase简介1.1 什么是HBase&#xff1f;1.2 HBase核心特点 2.…

vscode连接服务器失败问题解决

文章目录 问题描述原因分析解决方法彻底删除VS Code重新安装较老的版本 问题描述 vscode链接服务器时提示了下面问题&#xff1a; 原因分析 这是说明VScode版本太高了。 https://code.visualstudio.com/docs/remote/faq#_can-i-run-vs-code-server-on-older-linux-distribu…

redis常用部署架构之redis分片集群。

redis 3.x版本后开始支持 作用&#xff1a; 1.提升数据读写速度 2..提升可用性 分片集群就是将业务服务器产生的数据储存在不同的机器上。 redis分片集群的架构 如上图所示&#xff0c;会将数据分散存储到不同的服务器上&#xff0c;相比于之前来说&#xff0c;redis要处…

Modbus主站EtherNet/IP转ModbusRTU/ASCII工业EIP网关串口服务器

型号 2路总线EIP网关 MS-A1-2021 4路总线EIP网关 MS-A1-2041 4路总线EIP网关&#xff08;双网口&#xff09; MS-A2-2041 8路总线EIP网关 MS-A1-2081 8路总线EIP网关&#xff08;双网口&#xff09; MS-A2-2081 EtherNet/IP 串口网关 EtherNet/IP 转 RS485 …

Centos7 安装 TDengine

Centos7 安装 TDengine 1、简介 官网&#xff1a; https://www.taosdata.com TDengine 是一款开源、高性能、云原生的时序数据库&#xff08;Time Series Database, TSDB&#xff09;, 它专为物联网、车联网、工业互联网、金融、IT 运维等场景优化设计。同时它还带有内建的缓…

基于社交裂变的S2B2C电商模式创新研究——以“颜值PK+礼品卡+AI智能名片“融合生态为例

摘要 本文构建了融合开源AI技术、社交裂变机制与S2B2C商业模式的创新模型。通过开发具备AI智能名片功能的商城小程序&#xff0c;实现用户日均停留时长提升171%、社交转化效率提高2.8倍的实证效果。研究发现&#xff1a;基于GAN的虚拟形象生成技术可降低用户决策成本32%&…

王者荣耀服务器突然崩了

就在刚刚王者荣耀服务器突然崩了 #王者荣耀崩了#的话题毫无预兆地冲上热搜&#xff0c;许多玩家发现游戏登录界面反复弹出异常提示&#xff0c;匹配成功后卡在加载界面&#xff0c;甚至出现对局数据丢失的情况。根据官方公告&#xff0c;目前技术团队已在全力抢修服务器 #王者…

LabVIEW医疗设备备用电源实时监控系统

开发了一个基于LabVIEW的医疗设备备用电源实时监控系统。系统提高医疗设备备用电源的管理效能与使用安全&#xff0c;通过实时监测与数据分析&#xff0c;确保医疗设施在电力供应中断时的可靠运行。 ​ 项目背景 医院中的医疗设备对电源的连续供应有着极高的要求&#xff0c;…