在服务器上开Juypter Lab教程(远程访问)

在服务器上开Juypter Lab教程(远程访问)

文章目录

包含anaconda、conda、Pytorch、Juypter、node.js安装教程,并附带相关命令的解释和常见的问题.

介绍了如何在Linux服务器上配置远程访问的Jupyter Lab环境,包括从Anaconda的安装、Pytorch环境的创建、Jupyter Lab的配置到Node.js的安装步骤。它涵盖了相关命令的解释,例如如何赋予文件执行权限、创建和激活Conda虚拟环境以及配置Jupyter Lab的密码和远程访问。文件还包括一些常见问题的解决方法,如无法访问Jupyter Lab的登录界面、密码错误导致的登录失败以及环境未正确配置等。

一、安装anaconda

如何在Linux服务器上安装Anaconda(超详细)_linux安装anconda-CSDN博客

1、安装anaconda
bash 复制代码
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
2、提权限
复制代码
chmod +x Anaconda3-2024.02-1-Linux-x86_64.sh

chmod 是用来改变文件或目录的访问权限的命令,而 +x 是具体的参数选项,表示添加执行权限

在 UNIX 和类 UNIX 系统中,文件和目录的权限分为三组:

  • 所有者(u):文件的创建者,通常有对文件的最高权限。
  • 组(g):文件所属的用户组,组内的所有用户对文件有相同的权限。
  • 其他人(o):系统中其他所有用户。

文件权限由三种类型构成:

  • 读(r):可以读取文件的内容。
  • 写(w):可以修改文件的内容。
  • 执行(x):可以运行文件作为程序或脚本。

例如,如果一个文件原先的权限是 rw-r--r--,运行 chmod +x 后,权限将变为 rwxr-xr-x,这意味着所有者、组和其他用户都可以执行这个文件。

3、运行
4、同意协议
5、安装
6、是否要自动初始化 conda

yes :选择 "yes" 后,conda 会在每次启动终端时自动激活 base 环境。

no (默认):选择 "no" 后,conda 不会自动激活 base 环境,但你仍然可以通过手动命令激活环境。

7、结束

Tips:For changes to take effect, close and re-open your current shell.

我们需要关闭当前终端窗口,然后重新打开一个新的终端窗口。

8、检查
bash 复制代码
conda -V

二、Anaconda安装Pytorch

配置我尽量按照如下进行设置

1、安装pytorch
bash 复制代码
conda create -n pytorch_zhanyong python=3.8
2、检查和激活环境
bash 复制代码
conda activate pytorch_zhanyong
  1. base 环境
  • 默认环境base 是 Conda 安装时默认创建的环境。当你第一次安装 Anaconda 或 Miniconda 时,base 环境自动生成,并包含了 Anaconda 默认的一些包,比如 numpypandasmatplotlib 等常用的科学计算库。
  • 全局环境 :通常,base 环境包含了你可以使用的所有基础工具包和管理命令,如 conda 命令本身。它通常不建议用作日常开发的工作环境,因为安装过多包可能导致依赖冲突或版本管理问题。
  • 包较多base 环境默认安装了 Anaconda 或 Miniconda 中附带的大量包,可能比较臃肿。
  1. pytorch_zhanyong 环境
  • 自定义环境pytorch_zhanyong 是你自己创建的一个 Conda 环境,专门用来处理你在 pytorch 相关的工作。这个环境不会继承 base 环境中的包,而是你自行定义的,可以包含你需要的特定库,如 PyTorch、torchvision 等。它的包数量相对较少、更加轻量。
  • 隔离环境 :这是 Conda 的一个重要特性。每个环境都是相互隔离的,这意味着你可以在这个环境中安装与 base 环境不同的库版本或完全不同的库,而不会互相影响。这在避免包冲突、依赖问题等方面特别有用。
  • 灵活性:你可以根据项目的需要,为每个项目创建独立的 Conda 环境。例如,你可以为每个项目创建不同的环境来适应不同的 Python 或库版本。
3、安装PyTorch

Previous PyTorch Versions | PyTorch

推荐使用之前的版本Previous PyTorch Version,而不是最新版本

bash 复制代码
# CUDA 11.3
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch

安装结束

4、检查python版本
bash 复制代码
python --version
5、检查虚拟环境
bash 复制代码
conda info --envs

三、安装JuypterLab

1、安装

远程服务器ubuntu安装Jupyter Lab详细教程_ubuntu jupyter-CSDN博客

bash 复制代码
conda install -c anaconda jupyter
2、生成配置文件
bash 复制代码
jupyter notebook --generate-config
#生成的文件位于:~/.jupyter/jupyter_notebook_config.py #配置文件
3、设置密码

在终端中直接输入

bash 复制代码
jupyter notebook password

输入自己设置的密码即可,主要是用于后续远程登录的密码

bash 复制代码
vim .jupyter/jupyter_notebook_config.py 

vim进入后,可以按照大写的G【小写没用】跳转文件的末尾位置,加入下述内容即可

bash 复制代码
c.ServerApp.ip = '*' #本机静态IP 建议使用*
c.ServerApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$XXXXXXXXXX'
# 这个是刚要保存的秘钥
c.ServerApp.open_browser = False # 运行时不打开本机浏览器
c.ServerApp.port = 7890    #端口,可以随意指定 不与系统其他端口冲突即可
c.ServerApp.allow_remote_access = True  #允许远程访问
c.ServerApp.root_dir = '/home/zhanyong' # 如果服务器包含多个用户,建议修改初始路径,注意最后不需要使用/结束   
5、设置防火墙
bash 复制代码
sudo ufw allow 7890 #放行自己设置的端口

四、安装nodejs

1、安装

下载 | Node.js 中文网 (nodejs.cn)

bash 复制代码
wget https://npmmirror.com/mirrors/node/v20.17.0/node-v20.17.0-linux-x64.tar.xz

解压

bash 复制代码
tar -xvf node-v20.17.0-linux-x64.tar.xz
bash 复制代码
# 使用vim 编辑~/.bashrc文件
 $vim ~/.bashrc
 
# 在文件最后一行,添加下面一行内容
export PATH=/home/zhanyong/node-v20.17.0-linux-x64/bin:$PATH
#/home/zhanyong/node-v20.17.0-linux-x64/这部分的内容需要替换你自己的实际路径
# 使文件生效
source ~/.bashrc

# 查看node版本
$node -v # 检查node环境是否配置成功
# 输出node对应版本】
v20.17.0
2、校验和检查
bash 复制代码
# 查看node版本
$node -v # 检查node环境是否配置成功

五、启动jupyter-lab

1、开启screen

一般启动jupyter后会一直保持运行,因此可以将其放入后台运行,可以采用screen来实现,首先创建一个名字为jupyterlab的后台

bash 复制代码
screen -S jupyterlab

-S 选项用于给新创建的会话指定一个名称

bash 复制代码
screen -r jupyterlab

screen -r 命令,它用于重新连接到一个已经存在的会话

然后启动,如果用的是root账号的话则需要加上--allow-root,否则不需要

bash 复制代码
# jupyter-lab --allow-root 
# jupyter-lab

最后按Ctrl+A+D组合键即可退出后台,而jupyter-lab保持运行

2、激活环境
bash 复制代码
conda activate pytorch_zhanyong #在jupyter-lab之前保证环境是自己的环境,而不是base默认环境(如果没有额外创建虚拟环境,可忽略)
3、登录

使用 ip:7890/lab 即可登录,注意ip是虚拟机的ip,端口是自己设置的,输入密码,密码是jupyter notebook password命令后输入的密码

检查是否可用

4、常用工具
bash 复制代码
#screen -ls 显示所有的screen
#exit 如果你在 screen 的最后一个窗口中,这将关闭该窗口,并且如果没有其它窗口,会结束整个 screen 会话。
#kill 157460 结束对应的进程

screen:启动一个新的 screen 会话。
screen -S <name>:启动一个带有特定名称的新 screen 会话。
screen -ls:列出所有 screen 会话。
screen -r <name/id>:重新连接到一个已断开的 screen 会话。
screen -x <name/id>:连接到一个正在运行的 screen 会话,允许多个用户看到同一个会话。
screen -d <name/id>:断开一个 screen 会话。
#使用 -r 当你想要独占地重新连接到一个 screen 会话,如果会话正在被使用,你需要首先断开它。
#使用 -x 当你想加入一个已经被一个或多个用户连接的 screen 会话,允许多用户同时操作和查看。
5、使用阿里云镜像
python 复制代码
pip3 config list
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
pip config set install.trusted-host mirrors.aliyun.com

六、常见问题

1、Cannot assign requested address (或无法正常显示lab登录界面)
bash 复制代码
n | extension was successfully loaded.
Traceback (most recent call last):
  File "/home/zhanyong/anaconda3/bin/jupyter-lab", line 11, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/zhanyong/anaconda3/lib/python3.11/site-packages/jupyter_server/extension/application.py", line 618, in launch_instance
    serverapp = cls.initialize_server(argv=args)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/zhanyong/anaconda3/lib/python3.11/site-packages/jupyter_server/extension/application.py", line 588, in initialize_server
    serverapp.initialize(
  File "/home/zhanyong/anaconda3/lib/python3.11/site-packages/traitlets/config/application.py", line 113, in inner
    return method(app, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/zhanyong/anaconda3/lib/python3.11/site-packages/jupyter_server/serverapp.py", line 2609, in initialize
    self.init_httpserver()
  File "/home/zhanyong/anaconda3/lib/python3.11/site-packages/jupyter_server/serverapp.py", line 2432, in init_httpserver
    self._find_http_port()
  File "/home/zhanyong/anaconda3/lib/python3.11/site-packages/jupyter_server/serverapp.py", line 2479, in _find_http_port
    sockets = bind_sockets(port, self.ip)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/zhanyong/anaconda3/lib/python3.11/site-packages/tornado/netutil.py", line 162, in bind_sockets
    sock.bind(sockaddr)
OSError: [Errno 99] Cannot assign requested address
(base) zhanyong@532lab:~$ screen

一般是端口没有放行,或ip设置错误,一般需要修改vim .jupyter/jupyter_notebook_config.py文件的内容

可以按照下方的配置进行检查

bash 复制代码
c.ServerApp.ip = '*' #本机静态IP 建议使用*
c.ServerApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$XXXXXXXXXX'
# 这个是刚要保存的秘钥
c.ServerApp.open_browser = False # 运行时不打开本机浏览器
c.ServerApp.port = 7890    #端口,可以随意指定 不与系统其他端口冲突即可
c.ServerApp.allow_remote_access = True  #允许远程访问
c.ServerApp.root_dir = '/home/zhanyong' # 如果服务器包含多个用户,建议修改初始路径,注意最后不需要使用/结束   
2、401 POST /login?next=%2Flab (@100.68.1.103) 13.39ms

一般是密码设置错误,导致未能成功进行登录,可以重新设置密码jupyter notebook password会直接覆盖之前的数据

3、torch等依赖显示未安装
python 复制代码
import torch

# 显示 PyTorch 版本
print(f"PyTorch version: {torch.__version__}")

# 检查是否可以使用CUDA
cuda_available = torch.cuda.is_available()
print(f"CUDA available: {cuda_available}")

# 如果CUDA可用,显示CUDA版本
if cuda_available:
    print(f"CUDA version: {torch.version.cuda}")
    print(f"Number of GPUs: {torch.cuda.device_count()}")
    print(f"GPU Name: {torch.cuda.get_device_name(0)}")

一般是启动jupyter-lab时候的环境不是你的虚拟环境,而是在base环境下,因为我们这里有初始化的环境,切换到自己的环境即可。

4、不知道本地访问lab的地址

使用jupyter-lab界面会有显示,使用http://服务器ip:端口/lab即可访问

相关推荐
宇钶宇夕7 分钟前
西门子 S7-200 SMART PLC 核心指令详解:从移位、上升沿和比较指令到流水灯控制程序实战
运维·算法·自动化
道路与代码之旅1 小时前
Delphi - IndyHttpServer接收上传文件
运维·服务器
烦躁的大鼻嘎2 小时前
【Linux】深入Linux多线程架构与高性能编程
linux·运维·服务器·开发语言·c++·ubuntu
羚羊角uou2 小时前
【Linux】system V共享内存
linux·运维·服务器
林克爱塞尔达2 小时前
Linux入门(二)
linux·运维·chrome
破烂儿2 小时前
Ubuntu Server 安装图形界面和通过Window远程桌面连接服务器(Xrdp)
linux·服务器·ubuntu
Hello.Reader2 小时前
Kafka 运维实战基本操作含命令与最佳实践
运维·kafka·linq
存储服务专家StorageExpert2 小时前
手搓一个 DELL EMC Unity存储系统健康检查清单
linux·运维·服务器·存储维护·emc存储
小虾米vivian3 小时前
达梦:将sql通过shell脚本的方式放在后台执行
服务器·数据库·sql
SonOfWind03113 小时前
CentOS搭建本地源
linux·运维·centos