ubuntu搭建jupyter_notebook服务器

环境:ubuntu 22.04

目录

环境:ubuntu 22.04

一、创建一个anaconda用户

创建用户condaUser

为用户condaUser设置密码

开放opt文件夹的权限

登录condaUser用户

二、安装anaconda

下载anaconda

安装anaconda

三、添加环境变量

四、anaconda换源

这里使用清华源

查看源配置

五、anaconda创建虚拟环境

创建虚拟环境

切换到指定源

六、安装jupyter notebook

七、jupyter notebook配置

创建工作目录

生成访问密码

生成配置文件

编辑生成的配置文件

八、安装nginx

安装nginx

修改nginx配置文件

九、启动服务器

启动nginx

后台启动jupyter notebook

十、访问jupyter notebook服务器


一、创建一个anaconda用户

这步没有也无所谓,我只是不想把anaconda安装在/root目录里

创建用户condaUser

sudo useradd -r -m -s /bin/bash condaUser

为用户condaUser设置密码

sudo passwd condaUser

创建工作目录

mkdir /opt/jupyter_notebook_workspace

分配工作目录给condaUser

sudo chown -R condaUser:condaUser /opt/jupyter_notebook_workspace

登录condaUser用户

二、安装anaconda

下载anaconda

先在清华大学开源软件镜像站选一款心怡的安装包

清华大学开源软件镜像站

使用wget命令下载这个安装包,如:

wget --user-agent="Mozilla" https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.09-0-Linux-x86_64.sh

安装anaconda

下载后的文件在/home/condaUser目录下,我们作为condaUser用户,这是我们的家目录。在这个目录下执行:

bash Anaconda3-2023.09-0-Linux-x86_64.sh

输入q退出协议,这里不用按enter一行一行看,要是一不小心按多了,就会退出安装,又得再看一遍

输入yes开始安装

三、添加环境变量

编辑配置文件.bashrc

vim ~/.bashrc

点击i进入编辑模式,在最后一行添加:

export PATH=$PATH:/home/condaUser/anaconda3/bin

点击esc退出编辑模式

输入:wq回车,进行保存

重新加载配置文件

source ~/.bashrc

这时可以使用conda命令

conda -V

conda命令测试

四、anaconda换源

这里使用清华源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --set show_channel_urls yes

查看源配置

conda config --show channels

conda清华源

五、anaconda创建虚拟环境

创建虚拟环境

实例中创建一个叫ai的虚拟环境,并指定使用python版本3.9(如果后面需要下载tensorflow,最好指定一下版本不超过3.9,tensorflow不支持3.9以后的python版本了)

conda create -n ai python=3.9

切换到指定源

source activate ai

也可以在~/.bashrc末尾添加

alias conda_ai='source activate ai'

后重新加载配置文件,即可使用conda_ai切换到虚拟环境ai

六、安装jupyter notebook

先进入我们需要的虚拟环境,如进入虚拟环境ai

conda install jupyter notebook

不知道为什么,这样子安装后的jupyter notebook运行的时候会出现websocket连接失败的问题,需要再执行

pip install -U jupyter

七、jupyter notebook配置

创建工作目录

mkdir /opt/jupyter_notebook_workspace

生成访问密码

在命令行中输入python 回车 进入python命令行界面

执行如下:

from jupyter_server.auth import passwd;
passwd(algorithm='sha1')

重复两次密码得到密码的sha1

生成配置文件

jupyter notebook --generate-config

编辑生成的配置文件

vim /home/condaUser/.jupyter/jupyter_notebook_config.py

在最后一行加入

c.ServerApp.ip = '0.0.0.0'
c.ServerApp.password = '' # 这里输入之前得到的sha1
c.ServerApp.open_browser = False
c.ServerApp.port = 8888 # 如果你不希望使用nginx转发,也可以直接配置成80,从80端口直接启动需要root权限
c.ServerApp.allow_remote_access = True
c.NotebookApp.notebook_dir = r'/opt/jupyter_notebook_workspace'

:wq保存退出

八、安装nginx

这里先切换回root用户

安装nginx

apt install -y nginx

修改nginx配置文件

vim /etc/nginx/nginx.conf

在http块中加入

server {listen 80;server_name  域名或ip;client_max_body_size 10G;location / {proxy_pass              http://127.0.0.1:8888;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_redirect off;}
}

:wq 保存退出

九、启动服务器

启动nginx

没装不用启动

nginx

后台启动jupyter notebook

jupyter notebook &

十、访问jupyter notebook服务器

在浏览器输入你的域名或ip

在登录页面输入你的密码就可以看到你的jupyter notebook了

jupyter_notebook页面

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

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

相关文章

【Unity Shader入门精要 第4章】数学基础(二)

1. Unity中的坐标空间 1.1 五个坐标空间 模型空间 模型自身的3D坐标系空间,左手坐标系是一个相对空间,坐标轴指向随模型旋转变化当物体有父节点时,Transform组件中各属性的值表示的即为该物体在其父物体的模型空间中的值当模型顶点传入顶点…

ARP防火墙能够为网络安全贡献什么样的力量

ARP防火墙(Address Resolution Protocol Firewall)作为网络安全的一环,起到保护网络免受ARP欺骗攻击的关键作用。今天德迅云安全给您介绍ARP防火墙的相关方面,帮助您深入了解和认识这一关键的安全措施。 网络安全对于现代社会的信…

「 网络安全常用术语解读 」SBOM主流格式CycloneDX详解

CycloneDX是软件供应链的现代标准。CycloneDX物料清单(BOM)可以表示软件、硬件、服务和其他类型资产的全栈库存。该规范由OWASP基金会发起并领导,由Ecma International标准化,并得到全球信息安全界的支持,如今CycloneD…

Java——认识异常

目录 一.异常的概念与体系结构 1.异常的概念 1.1算术异常 1.2数组越界异常 1.3空指针异常 2.异常的体系结构 3.异常的分类 3.1编译时异常 3.2运行时异常 二.异常的处理 1.防御式编程 1.1LBYL 1.2EAFP(核心) 2.异常的抛出 3.异常的捕获 3…

使用 ORPO 微调 Llama 3

原文地址:https://towardsdatascience.com/fine-tune-llama-3-with-orpo-56cfab2f9ada 更便宜、更快的统一微调技术 2024 年 4 月 19 日 ORPO 是一种新的令人兴奋的微调技术,它将传统的监督微调和偏好校准阶段合并为一个过程。这减少了训练所需的计算…

【深度学习】第二门课 改善深层神经网络 Week 2 3 优化算法、超参数调试和BN及其框架

🚀Write In Front🚀 📝个人主页:令夏二十三 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:深度学习 💬总结:希望你看完之后,能对…

python实现验证码-图片类型

1 utils.py import randomdef get_random_code():code for i in range(5):# 随机生成大写字母upper_char chr(random.randint(65, 90))lower_char chr(random.randint(97, 122))num_char str(random.randint(0, 9))res random.choice([upper_char, lower_char, num_char]…

软件应用开发安全设计指南

1.1 应用系统架构安全设计要求 设计时要充分考虑到系统架构的稳固性、可维护性和可扩展性,以确保系统在面对各种安全威胁时能够稳定运行。 在设计系统架构时,要充分考虑各种安全威胁,如DDoS攻击、SQL注入、跨站脚本攻击(XSS&…

如何使用 Node.js 开发一个文件上传功能?

在 Node.js 中实现文件上传功能可以通过多种方式完成,但其中最常用的方法之一是使用 Express 框架和 Multer 中间件。Express 是一个流行的 Node.js Web 框架,而 Multer 是一个用于处理文件上传的中间件。 步骤 1: 准备工作 首先,确保你已经…

《Fundamentals of Power Electronics》——升压隔离型变换器、SEPIC隔离型变换器

以下是升压型隔离变换器的相关知识点: 升压型隔离变换器可以通过互换降压型隔离变换器的电源与负载的位置得到。升压型隔离变换器有许多种结构,此处简短的讨论两种情况。这些转换器主要使用在高压电源和低谐波整流器中。 图6.36所示是一种全桥型电路结…

企业定制AI智能名片商城小程序:重塑营销场景,引领数字化营销新纪元

在数字化时代的浪潮中,多企业AI智能名片商城小程序以其独特的魅力和创新的功能,为消费者带来了前所未有的购物体验。它不仅是一个汇聚各类商品的购物平台,更是一个充满活力和创造力的社群生态。通过强化社群互动、鼓励用户生成内容以及引入积…

uniapp 文字转语音(文字播报、语音合成)、震动提示插件 Ba-TTS

简介(下载地址) Ba-TTS 是一款uniapp语音合成(tts)插件,支持文本转语音(无服务费),支持震动提示。 支持语音合成,文本转语音支持震动(可自定义任意震动效果…

一对一WebRTC视频通话系列(二)——websocket和join信令实现

本系列博客主要记录WebRtc实现过程中的一些重点,代码全部进行了注释,便于理解WebRTC整体实现。 一对一WebRTC视频通话系列往期博客: 一对一WebRTC视频通话系列(一)—— 创建页面并显示摄像头画面 websocket和join信令…

Go实战训练之Web Server 与路由树

Server & 路由树 Server Web 核心 对于一个 Web 框架,至少要提供三个抽象: Server:代表服务器的抽象Context:表示上下文的抽象路由树 Server 从特性上来说,至少要提供三部分功能: 生命周期控制&…

堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41),framework修改,去除第三方app的倒计时页面

文章目录 堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41),framework修改,去除第三方app的倒计时页面1.打印异常堆栈2.去除第三方app的倒计时页面3.模拟点击事件跳过首页进入主页 堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41)&#x…

领域驱动设计(DDD)笔记(三)后端工程架构

文章链接 领域驱动设计(DDD)笔记(一)基本概念-CSDN博客领域驱动设计(DDD)笔记(二)代码组织原则-CSDN博客领域驱动设计(DDD)笔记(三)后端工程架构-CSDN博客前导 领域驱动设计(Domain Driven Design,简称DDD)是业内主导的业务工程理论。它在各中权威人士被广泛讨论…

华为云耀云服务器开放端口

博客主页:花果山~程序猿-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一.华为云控制台开放端口 寻找到安全组信息 2. 添加开放的端口信息 3. 检查是否成…

信息泄露.

一,遍历目录 目录遍历:没有过滤目录相关的跳转符号(例如:../),我们可以利用这个目录找到服务器中的每一个文件,也就是遍历。 tipe:依次点击文件就可以找到flag 二,phpi…

JavaScript基础(四)

逻辑运算符 && 与 : 多个条件同时满足 ΙΙ 或 : 多个条件满足一个 &#xff01; 非 : 否定某个条件 例: <script> //&多个条件同时满足&#xff0c;才返回true //任意一个为false&#xff0c;就返回false var a 10; var b 20; …

vue快速入门(五十)重定向

注释很详细&#xff0c;直接上代码 上一篇 本篇建立在之前篇目前提下针对重定向进行演示 新增内容 路由重定向写法 源码 src/router/index.js //导入所需模块 import Vue from "vue"; import VueRouter from "vue-router"; import myMusic from "/v…