在服务器上开Juypter Lab教程(远程访问)
介绍了如何在linux服务器上配置远程访问的Jupyter Lab环境,包括从Anaconda的安装、Pytorch环境的创建、Jupyter Lab的配置到Node.js的安装步骤。它涵盖了相关命令的解释,例如如何赋予文件执行权限、创建和激活Conda虚拟环境以及配置Jupyter Lab的密码和远程访问。文件还包括一些常见问题的解决方法,如无法访问Jupyter Lab的登录界面、密码错误导致的登录失败以及环境未正确配置等。
一、安装anaconda
1、安装anaconda
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
所有者(u):文件的创建者,通常有对文件的最高权限。
组(g):文件所属的用户组,组内的所有用户对文件有相同的权限。
其他人(o):系统中其他所有用户。
读(r):可以读取文件的内容。
写(w):可以修改文件的内容。
执行(x):可以运行文件作为程序或脚本。
3、运行
4、同意协议
5、安装
6、是否要自动初始化 conda
7、结束
8、检查
conda -V
二、Anaconda安装Pytorch
1、安装pytorch
conda create -n pytorch_zhanyong python=3.8
2、检查和激活环境
conda activate pytorch_zhanyong
默认环境:base 是 Conda 安装时默认创建的环境。当你第一次安装 Anaconda 或 Miniconda 时,base 环境自动生成,并包含了 Anaconda 默认的一些包,比如 numpy、pandas、matplotlib 等常用的科学计算库。
全局环境:通常,base 环境包含了你可以使用的所有基础工具包和管理命令,如 conda 命令本身。它通常不建议用作日常开发的工作环境,因为安装过多包可能导致依赖冲突或版本管理问题。
包较多:base 环境默认安装了 Anaconda 或 Miniconda 中附带的大量包,可能比较臃肿。
自定义环境:pytorch_zhanyong 是你自己创建的一个 Conda 环境,专门用来处理你在 pytorch 相关的工作。这个环境不会继承 base 环境中的包,而是你自行定义的,可以包含你需要的特定库,如 PyTorch、torchvision 等。它的包数量相对较少、更加轻量。隔离环境:这是 Conda 的一个重要特性。每个环境都是相互隔离的,这意味着你可以在这个环境中安装与 base 环境不同的库版本或完全不同的库,而不会互相影响。这在避免包冲突、依赖问题等方面特别有用。
灵活性:你可以根据项目的需要,为每个项目创建独立的 Conda 环境。例如,你可以为每个项目创建不同的环境来适应不同的 Python 或库版本。
3、安装PyTorch
# CUDA 11.3 conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch
4、检查python版本
python --version
5、检查虚拟环境
conda info --envs
三、安装JuypterLab
1、安装
conda install -c anaconda jupyter
2、生成配置文件
jupyter notebook --generate-config #生成的文件位于:~/.jupyter/jupyter_notebook_config.py #配置文件
3、设置密码
jupyter notebook password
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' # 如果服务器包含多个用户,建议修改初始路径,注意最后不需要使用/结束
5、设置防火墙
sudo ufw allow 7890 #放行自己设置的端口
四、安装nodejs
1、安装
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环境是否配置成功
五、启动jupyter-lab
1、开启screen
screen -S jupyterlab
screen -r jupyterlab
# jupyter-lab --allow-root # jupyter-lab
2、激活环境
conda activate pytorch_zhanyong #在jupyter-lab之前保证环境是自己的环境,而不是base默认环境(如果没有额外创建虚拟环境,可忽略)
3、登录
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
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
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)}")
4、不知道本地访问lab的地址
本文链接:https://blog.runxinyun.com/post/196.html 转载需授权!
留言0