为了学习Python熬夜部署了Jupyter Notebook 6.x
文章目录
- Docker拉取并构建容器
- 安装部署jupyter
- 对Jupyter使用过程问题总结
- 1 没有代码提示怎么办?
- 2 如果想切换python版本了怎么办?
- 3 想在jupyter里面使用vim怎么办?
- 遇见的问题
- 参考文章
怎么说,今天在学习Python的时候,遇到一段代码,想要运行一下,但是我的15款mbp的风扇已经不允许我在打开任何ide了,所以想着在服务器上面启一个jupyter的服务,在网页上面运行Python的代码。
说干就干。
这里我依然使用docker来实现, 通过拉取镜像,然后运行;后面的话像一下其他的python项目也可以一起放到这个容器里面。
Docker拉取并构建容器
拉取python镜像
# 这里需要注意,如果使用的是3.7的版本,那么notebook的版本会在7以下
# 因为notebook 7+ 有许多调整,当前文章还是以 jupyter notebook 6.5.2 编写
docker pull python:3.7
运行容器
docker run --name python3 -p 8000:8000 -v /home/dengcong/project/jupyter:/home/dengcong/project/jupyter -itd python:3.7
然后进入到容器里面
docker exec -it python3 /bin/bash
安装部署jupyter
我们开始安装部署jupyter,后面的操作都是在容器里面。
1、安装jupyter服务所以来的包
pip3 install jupyter -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
2、生成jupyter的配置文件,生成的文件默认路径如下:
root@f8996f298763:/# jupyter notebook --generate-config --allow-root
Writing default config to: /root/.jupyter/jupyter_notebook_config.py // 配置文件存放路径
3、设置jupyter的密码,不设置的话,也可以在第一次访问的时候设置
jupyter notebook password
4、修改jupyter的配置文件
新拉取的镜像多半是没有安装vi或者是vim的,可以根据操作系统安装,也可以用sed命令来进行替换操作,(果然服务器上面可以没有vim,但是不能没有linux 三剑客, grep、sed、awk)。
// 容器在执行下面两条语句之前的大小是265MB, 执行之后的大小为332MB
// 增加的大小还是能接受,毕竟用的是最low的服务器,需要扣一些细节
apt update
apt install vim -y
用vim打开jupyter的配置文件,修改如下内容:
c.NotebookApp.ip='*' # 所有ip都可访问
c.NotebookApp.open_browser = False # 不打开浏览器
c.NotebookApp.port = 8000 # 可自行指定一个端口, 我这里是8000
c.NotebookApp.notebook_dir = "/work" # 设置工作目录
如果使用sed,可以参考下面语句
// 下面这个命令就是将配置文件中的内容替换成新的配置 // 比如第一句就是将 # c.NotebookApp.ip = 'localhost' 替换成 c.NotebookApp.ip = '*' // 后面两句同理。sed -ie "s/# c.NotebookApp.ip = 'localhost'/c.NotebookApp.ip = '*'/g" ~/.jupyter/jupyter_notebook_config.py sed -ie 's/# c.NotebookApp.port = 8888/c.NotebookApp.port = 8000/g' ~/.jupyter/jupyter_notebook_config.py sed -ie 's/# c.NotebookApp.open_browser = True/c.NotebookApp.open_browser = False/g' ~/.jupyter/jupyter_notebook_config.py
5、运行jupyter服务
// 后台运行,并将标准输出信息存到jupyter.log里面
nohup jupyter notebook --allow-root > jupyter.log 2>&1 &
6、停止运行jupyter服务
ps -ef | grep jupyter
kill -9 pid
对Jupyter使用过程问题总结
1 没有代码提示怎么办?
安装配置如下:
# 安装 jupyter 的插件管理器 jupyter_contrib_nbextensions
pip3 install jupyter_contrib_nbextensions -i https://pypi.mirrors.ustc.edu.cn/simple# 安装关联的 JavaScript 和 CSS 文件
jupyter contrib nbextension install --userpip3 install --user jupyter_nbextensions_configurator# 启用 jupyter 的插件管理器 jupyter_contrib_nbextensions
jupyter nbextensions_configurator enable --user
如果提示: “jupyter notebook autopep8 Error loading library for python: ModuleNotFoundErrorNo module”,需要安装一下autopep8
pip3 install autopep8
- 参考: jupyter没有代码提示的解决办法
2 如果想切换python版本了怎么办?
import sys
print(sys.version)# 3.7.17 (default, Sep 20 2023, 11:53:41) [GCC 12.2.0]
venv创建指定python版本的虚拟环境时,需要本地有指定版本的解释器,但是我本地没有。
root@f8996f298763:~# python3.9 -m venv stu
bash: python3.9: command not found
3 想在jupyter里面使用vim怎么办?
参考github: jupyter-vim-binding
激活扩展配置
pip3 install jupyter_contrib_nbextensions -i https://pypi.mirrors.ustc.edu.cn/simple
jupyter contrib nbextension install --user
pip3 install --user jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
添加vim_binding到插件
# Create required directory in case (optional)
mkdir -p $(jupyter --data-dir)/nbextensions
# Clone the repository
cd $(jupyter --data-dir)/nbextensions
git clone https://github.com/lambdalisue/jupyter-vim-binding vim_binding
# Activate the extension
jupyter nbextension enable vim_binding/vim_binding
jupyter里面vim的快捷键有哪些呢?
基本的vim操作。
Option + enter 在创建一个
Command + enter 表示运行
遇见的问题
当时搞到了早上1点过, 部署上去之后死活访问不到服务,因为telnet 不通服务器的8000端口,大概率是猜到了服务器的安全组的策略问题,但是当时很不理解,明明我在服务器上面是放行了8000端口的, 还是不行,后面就休息了,搞不动了。
结果第二天,我用公司的m2的电脑重新登陆阿里云的控制台,发现mbp打开的安全组信息和我早上m2电脑打开的安全组信息不一样,我真的栓Q了,重新开了就好了。
有可能是晚上太迷糊,登陆到了别人号上面?
参考文章
参考文章
- 配置jupyter在远端服务器运行
- Linux服务器上配置Jupyter并在后台运行
- 服务器端配置jupyter notebook以及本地打不开的解决办
待阅读文章:
- python类变量与__init__声明变量的区别
- 深入理解Python协程:从基础到实战
相关文章:
为了学习Python熬夜部署了Jupyter Notebook 6.x
文章目录 Docker拉取并构建容器安装部署jupyter对Jupyter使用过程问题总结1 没有代码提示怎么办?2 如果想切换python版本了怎么办?3 想在jupyter里面使用vim怎么办? 遇见的问题参考文章 怎么说,今天在学习Python的时候,…...
docker-文件复制(docker cp:用于在Docker主机和容器之间拷贝文件或目录)
文章目录 1、把宿主机的文件复制到容器内部1.1、查询 宿主机 root 下的文件1.2、docker cp /root/anaconda-ks.cfg spzx-redis:/root1.3、查看 spzx-redis 容器 中/root目录下是否有 anaconda-ks.cfg 文件 2、把容器中的文件 复制 到宿主机中2.1、查看 spzx-redis 容器 / 下的文…...
guava里常用功能
guava 是 Google 提供的一个 Java 库,提供了很多实用的工具类和方法,可以帮助开发者更高效地编写代码。以下是一些常用的 Guava 工具类及其功能示例: 1. Lists 用于操作列表的工具类。 import com.google.common.collect.Lists;List<In…...
su 命令:一键切换用户身份、提高su命令安全性的建议
一、命令简介 su 命令是 Linux 和 Unix 系统中的一个实用工具,用于切换用户身份。它允许当前登录用户在不退出登录会话的情况下,切换到另一个用户的身份。通常,su 用于从普通用户切换到 root 用户,或从 root 用户切换到其他…...
观察者模式(发布-订阅模式)
用途: (1)可用于拦截过滤器 (2)订单创建成功后的一些后续逻辑(消息提醒,订单打印,物品打包等) (3)需要由统一调度中心调度的一系列任务等 消息…...
耦合微带线单元的网络参量和等效电路公式推导
文档下载链接:耦合微带线单元的网络参量和等效电路资源-CSDN文库https://download.csdn.net/download/lu2289504634/89583027笔者水平有限,错误之处欢迎留言! 一、耦合微带线奇偶模详细推导过程 二、2,4端口开路 三、2端口短路、3端口开路 四…...
elasticsearch的Ingest Attachment插件的使用总结
安装 Ingest Attachment 插件 确保 Elasticsearch 已安装: 首先,请确保你已经安装并运行了 Elasticsearch。可以通过访问 http://localhost:9200 来检查是否正常运行。 安装插件: 使用以下命令在 Elasticsearch 中安装 Ingest Attachment 插…...
SemiDrive E3 MCAL 开发系列(4) – Gpt 模块的使用
一、 概述 本文将会介绍SemiDrive E3 MCAL GPT模块的基本配置,并且会结合实际操作的介绍,帮助新手快速了解并掌握这个模块的使用,文中的 MCAL 是基于 PTG3.0 的版本,开发板是官方的 E3640 网关板。 二、 Gpt 模块的主要配置 …...
前端导出页面PDF
import html2canvas from html2canvas import { jsPDF } from jspdf import { Loading } from element-ui let downloadLoadingInstance// 导出页面为PDF格式---使用插件html2canvas和jspdf插件 export function exportPDF(fileName, node) {downloadLoadingInstance Loading.…...
Jenkins的安装
1.简介 官网:https://www.jenkins.io 中文文档:Jenkins Jenkins 是一个开源的持续集成(CI)工具,用于自动化构建、测试和部署软件项目。它提供了一个易于使用和可扩展的平台,帮助团队更高效地开发和交付软…...
初学51单片机之I2C总线与E2PROM
首先先推荐B站的I2C相关的视频I2C入门第一节-I2C的基本工作原理_哔哩哔哩_bilibili 看完视频估计就大概知道怎么操作I2C了,他的LCD1602讲的也很不错,把数据建立tsp和数据保持thd,比喻成拍照时候的摆pose和按快门两个过程,感觉还是…...
C语言数组探秘:数据操控的艺术【下】
承接上篇,我们继续讲数组的内容。 八.二维数组的使用 当我们掌握了二维数组的创建和初始化,那我们怎么使用二维数组呢?其实二维数组访问也是使用下标的形式的,二维数组是有行和列的,只要锁定了行和列就能唯一锁定数组中…...
Jmeter关联,断言,参数化
目录 一、关联 边界提取器 JSON提取器 正则表达式提取器 跨线程关联 二、断言 响应断言 JSON断言 断言持续时间 三、参数化 用户参数 csv data setconfig csvread函数 一、关联 常用的关联有三种 1.边界提取器 2.JSON提取器 3.正则表达式提取器 接下来就详细讲述…...
嵌入式单片机底层原理详解
前言 此笔记面向有C语言基础、学习过数字电路、对单片机有一定了解且尚在学习阶段的群体编写,笔记中会介绍单片机的结构、工作原理,以及一些C语言编程技巧,对于还停留在复制模板、copy代码阶段的读者会有比较大的帮助,待学习完成后可以独立完成几乎所有单片机的驱动开发。 …...
重修设计模式-行为型-责任链模式
重修设计模式-行为型-责任链模式 将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。 责任链模式(Chain of Responsibilit…...
Vercel部署/前端部署
Vercel 部署 今天要讲的是如何对别人向自己的开源仓库提的PR进行自动代码审核 1. 注册并登录Vercel 访问 Vercel官网点击右上角的"Sign Up"选择使用GitHub、GitLab、Bitbucket或邮箱注册完成注册流程并登录 2. 连接代码仓库 在Vercel仪表板,点击"New Proje…...
常见的css预处理器
CSS预处理器是一种扩展了CSS功能的脚本语言,它允许开发者以编程的方式编写更加干净、结构化的CSS代码。通过引入变量、嵌套规则、混合(Mixins)、函数等高级特性,CSS预处理器使得CSS代码的编写更加灵活、高效,同时也提高…...
mysql—半同步模式
mysql的并行复制 在172.25.254.20(slave)主机上 默认情况下slave中使用的是sql单线程回放 在master中时多用户读写,如果使用sql单线程回放那么会造成组从延迟严重 开启MySQL的多线程回放可以解决上述问题 mysql> show processlist; 在配置文件中进行编辑 [root…...
You are not allowed to push code to this project
原因1 用户权限不够。 具体查看用户权限路径: 原因2 vscode之前都能提交代码,但是突然就提交不上了。 表现为:前端代码能拉取,但是不能提交。使用idea进行前端代码的提交,完全没问题。 解决方案:修改TortoiseG…...
Java刷题:最小k个数
目录 题目描述: 思路: 具体实现 整体建立一个大小为N的小根堆 通过大根堆实现 完整代码 力扣链接:面试题 17.14. 最小K个数 - 力扣(LeetCode) 题目描述: 设计一个算法,找出数组中最小的…...
SDMatte效果对比评测:与传统抠图工具及在线API的全面比拼
SDMatte效果对比评测:与传统抠图工具及在线API的全面比拼 1. 开篇:为什么需要新的抠图方案 在数字内容创作领域,抠图一直是个让人又爱又恨的技术活。记得去年帮朋友做电商产品图,光是给20个商品抠图就花了我整整一个周末。传统工…...
Phi-4-mini-reasoning企业应用探索:智能客服知识推理模块集成方案
Phi-4-mini-reasoning企业应用探索:智能客服知识推理模块集成方案 1. 轻量级推理模型的价值 在当今企业智能化转型浪潮中,轻量级推理模型正成为技术落地的关键。Phi-4-mini-reasoning作为一款专注于高质量推理的开源模型,凭借其128K令牌的超…...
OpenClaw开源项目深度体验:对比其与星图GPU平台Qwen3-14B-Int4-AWQ部署差异
OpenClaw开源项目深度体验:对比其与星图GPU平台Qwen3-14B-Int4-AWQ部署差异 1. 项目概览与核心功能 OpenClaw是近期备受关注的开源大模型项目,主打轻量化和易部署特性。它采用混合专家架构(MoE),在保持模型性能的同时显著降低了计算资源需求…...
PyTorch 3.0静训性能断崖预警:当AllReduce延迟>8.3ms或图编译耗时>117s时,你的训练任务已在 silently fail——附实时诊断CLI工具
第一章:PyTorch 3.0静态图分布式训练的静默失效危机全景PyTorch 3.0 引入的 TorchScript 静态图编译机制与 torch.distributed 的深度耦合,在多节点多卡场景下暴露出一类高危静默失效现象:训练进程持续运行、梯度同步无报错、loss 曲线看似收…...
仙侠H5手游【九州封魔劫代金券内购版】服务端图文搭建教程(含资源下载+部署过程)
游戏截图搭建环境信息 系统:Centos 7.6 内存:4G 处理器:2核 注意事项 复制代码需要通过浏览器打开文章才不会报错 搭建资源获取 百度网盘:https://pan.baidu.com/s/1wmz7RegQGBaNrYYVbuJqgg?pwdkdn4 解压密码:www.won…...
抖音无水印视频批量下载全攻略:技术解析与实战指南
抖音无水印视频批量下载全攻略:技术解析与实战指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…...
Bootstrap4 导航栏详解
Bootstrap4 导航栏详解 引言 Bootstrap 是一个流行的前端框架,它为开发者提供了丰富的组件和工具,以快速构建响应式、移动优先的网站和应用程序。导航栏是网站的重要组成部分,它能够帮助用户轻松地在网站的不同页面之间导航。Bootstrap4 提供…...
告别手动!用Python+GDAL批量处理GlobeLand30影像:下载、去黑边、镶嵌裁剪全自动
用PythonGDAL打造GlobeLand30全自动处理流水线 遥感影像处理一直是地理信息科学领域的核心工作之一。对于需要处理大范围GlobeLand30数据的科研人员和开发者来说,传统的手动操作不仅效率低下,还容易引入人为错误。想象一下,当你需要处理覆盖整…...
Wan2.2-I2V-A14B部署教程:解决OOM/驱动报错/端口冲突三大常见问题
Wan2.2-I2V-A14B部署教程:解决OOM/驱动报错/端口冲突三大常见问题 1. 镜像概述与核心优势 Wan2.2-I2V-A14B是一款专为文生视频任务优化的私有部署镜像,特别针对RTX 4090D 24GB显存配置进行了深度优化。这个镜像最大的特点是解决了AI视频生成领域常见的…...
深入ELF文件:从rpath和interpreter看懂Linux程序如何‘找到家’
深入ELF文件:从rpath和interpreter看懂Linux程序如何‘找到家’ 在Linux系统中,每个可执行程序背后都隐藏着一个精巧的加载机制。当你在终端输入一个命令时,系统如何找到并加载程序所需的所有组件?这背后是ELF(Execut…...
