• 在服务器上开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
    wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
    

    image-20240913140621989

    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,这意味着所有者、组和其他用户都可以执行这个文件。

    image-20240913140943161

    3、运行

    image-20240913141047499

    4、同意协议

    image-20240913141241856

    5、安装

    image-20240913141257999

    6、是否要自动初始化 conda

    image-20240913141434024

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

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

    7、结束

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

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

    image-20240913141455571

    8、检查
    conda -V
    

    image-20240913141658671

    二、Anaconda安装Pytorch

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

    image-20240913142304783

    1、安装pytorch
    conda create -n pytorch_zhanyong python=3.8
    

    image-20240913142507857

    2、检查和激活环境

    image-20240913142712968

    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,而不是最新版本

    # CUDA 11.3
    conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch
    

    image-20240913143218127

    安装结束

    image-20240913143724832

    4、检查python版本
    python --version
    

    image-20240913143942487

    5、检查虚拟环境
    conda info --envs
    

    image-20240913144023776

    三、安装JuypterLab

    1、安装

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

    image-20240913181711755

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

    在终端中直接输入

    jupyter notebook password
    

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

    image-20240913182122456

    image-20240913182328383

    vim .jupyter/jupyter_notebook_config.py 
    

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

    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、设置防火墙
    sudo ufw allow 7890 #放行自己设置的端口
    

    四、安装nodejs

    1、安装

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

    wget https://npmmirror.com/mirrors/node/v20.17.0/node-v20.17.0-linux-x64.tar.xz
    

    解压

    tar -xvf node-v20.17.0-linux-x64.tar.xz
    
    # 使用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、校验和检查
    # 查看node版本
    $node -v # 检查node环境是否配置成功
    

    image-20240913184106357

    五、启动jupyter-lab

    1、开启screen

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

    screen -S jupyterlab
    

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

    screen -r jupyterlab
    

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

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

    # jupyter-lab --allow-root 
    # jupyter-lab
    

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

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

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

    image-20240913235818964

    检查是否可用

    4、常用工具
    #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、使用阿里云镜像
    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登录界面)
    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文件的内容

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

    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等依赖显示未安装
    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环境下,因为我们这里有初始化的环境,切换到自己的环境即可。

    image-20240913235309035

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

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

    image-20240913235520881

  • 相关阅读:
    python 基于PHP+MySQL的驾校信息管理系统
    MicroStation二次开发问题记录(1):打开项目时自动加载dll文件
    基于内容的图像检索系统设计与实现--颜色信息--纹理信息--形状信息--PHASH--SHFT特征点的综合检测项目,包含简易版与完整版的源码及数据!
    gdb调试程序教程
    基于ssm(非maven)学生考勤管理系统
    dotnet 探究 SemanticKernel 的 planner 的原理
    ACM实训冲刺第二十二天
    css强制显示一行
    m基于MATLAB-GUI的GPS数据经纬度高度解析与kalman分析软件设计
    【面经】如何查看服务器内存和磁盘空间占用
  • 原文地址:https://blog.csdn.net/a_student_2020/article/details/142246164