PyTorch版本过低导致属性错误-Linux服务器
问题
在 Jupyter Lab 中配置 Python 环境(如 PyTorch 或其他库)通常涉及以下几个步骤:
1. 检查当前 Jupyter Lab 的内核环境
运行以下命令查看当前可用的内核:
!jupyter kernelspec list
或者
jupyter kernelspec list
这会显示 Jupyter Lab 可用的 Python 环境。
2. 创建并配置新的 Python 环境(可选)
如果你想要一个独立的环境(推荐),可以使用 conda
或 venv
:
方法 1:使用 Conda(推荐)
conda create -n myenv python=3.9 # 创建新环境
conda activate myenv # 激活环境
conda install pytorch torchvision -c pytorch # 安装 PyTorch
pip install jupyterlab # 安装 Jupyter Lab(如果不在环境里)
python -m ipykernel install --user --name=myenv # 将环境添加到 Jupyter Lab
然后重启 Jupyter Lab,选择 myenv
内核。
方法 2:使用 Python venv
python -m venv myenv # 创建虚拟环境
source myenv/bin/activate # Linux/Mac 激活
myenv\Scripts\activate # Windows 激活
pip install torch jupyterlab ipykernel
python -m ipykernel install --user --name=myenv
重启 Jupyter Lab,选择 myenv
内核。
3. 在 Jupyter Lab 中切换内核
- 打开 Jupyter Lab。
- 在 Notebook 界面,点击右上角的内核名称(如
Python 3
)。 - 选择你刚刚安装的环境(如
myenv
)。
4. 验证 PyTorch 是否正确安装
在 Notebook 中运行:
import torch
print(torch.__version__) # 检查 PyTorch 版本
print(torch.cuda.is_available()) # 检查 CUDA 是否可用
5. 解决常见问题
问题 1:Jupyter Lab 找不到内核
-
解决方法:
-
确保在目标环境中安装了
ipykernel
:pip install ipykernel
-
重新注册内核:
python -m ipykernel install --user --name=myenv --display-name "MyEnv"
-
问题 2:PyTorch 版本太低
-
解决方法:
pip install --upgrade torch torchvision
或
conda update pytorch torchvision -c pytorch
问题 3:Jupyter Lab 无法启动
-
解决方法:
jupyter lab clean # 清理缓存 jupyter lab --port=8888 # 指定端口
总结
步骤 | 操作 |
---|---|
1. 创建环境 | conda create -n myenv python=3.9 |
2. 激活环境 | conda activate myenv |
3. 安装 PyTorch | conda install pytorch torchvision -c pytorch |
4. 安装 Jupyter 内核 | python -m ipykernel install --user --name=myenv |
5. 启动 Jupyter Lab | jupyter lab |
6. 切换内核 | 在 Jupyter Lab 右上角选择 myenv |
这样,你就可以在 Jupyter Lab 中使用配置好的 PyTorch 环境了! 🚀
采用linux服务器的环境
在 Linux 服务器上配置 Jupyter Lab 环境(特别是针对 PyTorch 等深度学习库)的步骤如下:
1. 连接到 Linux 服务器
使用 SSH 连接:
ssh username@server_ip -p port_number
(如果服务器有域名,替换 server_ip
为域名)
2. 检查 Python 环境
查看当前 Python 版本:
python3 --version
或
which python3
3. 创建 Python 虚拟环境(推荐)
方法 1:使用 conda
(如果已安装)
conda create -n myenv python=3.9 # 创建环境
conda activate myenv # 激活环境
conda install pytorch torchvision torchaudio -c pytorch # 安装 PyTorch
方法 2:使用 venv
(Python 自带)
python3 -m venv ~/myenv # 创建虚拟环境
source ~/myenv/bin/activate # 激活环境
pip install --upgrade pip # 升级 pip
pip install torch jupyterlab # 安装 PyTorch 和 Jupyter Lab
4. 安装 Jupyter Lab 并配置内核
pip install jupyterlab ipykernel
python -m ipykernel install --user --name=myenv --display-name "PyTorch Env"
--name=myenv
:内核名称(可自定义)--display-name "PyTorch Env"
:在 Jupyter Lab 中显示的名称
5. 配置 Jupyter Lab 远程访问
生成 Jupyter 配置文件
jupyter lab --generate-config
设置密码
jupyter lab password
输入密码后,会生成加密密码(保存到 ~/.jupyter/jupyter_server_config.json
)。
修改配置文件
nano ~/.jupyter/jupyter_lab_config.py
添加以下内容:
c.ServerApp.ip = '0.0.0.0' # 允许所有 IP 访问
c.ServerApp.port = 8888 # 指定端口(可更改)
c.ServerApp.open_browser = False # 不自动打开浏览器
c.ServerApp.password = 'sha1:xxx' # 粘贴刚才生成的加密密码
c.ServerApp.root_dir = '/home/username/' # 设置默认工作目录
保存并退出(Ctrl+X
→ Y
→ Enter
)。
6. 启动 Jupyter Lab
直接启动
jupyter lab
使用 nohup
后台运行
nohup jupyter lab > jupyter.log 2>&1 &
nohup
:防止 SSH 断开后进程终止> jupyter.log
:输出日志到文件&
:后台运行
查看运行状态
ps aux | grep jupyter
或查看日志:
tail -f jupyter.log
7. 本地访问 Jupyter Lab
方法 1:SSH 端口转发
ssh -L 8888:localhost:8888 username@server_ip -p port_number
然后在本地浏览器访问:
http://localhost:8888
方法 2:直接访问服务器 IP
如果服务器开放了端口(如 8888
),直接访问:
http://server_ip:8888
8. 验证 PyTorch 环境
在 Jupyter Lab 新建 Notebook,选择 PyTorch Env
内核,运行:
import torch
print(torch.__version__) # 查看 PyTorch 版本
print(torch.cuda.is_available()) # 检查 CUDA 是否可用
9. 管理 Jupyter Lab 进程
停止 Jupyter Lab
pkill -f jupyter-lab
或查找进程 ID:
ps aux | grep jupyter
kill -9 PID
开机自启动(可选)
使用 systemd
创建服务:
sudo nano /etc/systemd/system/jupyter.service
添加:ini
[Unit]
Description=Jupyter Lab
[Service]
User=username
WorkingDirectory=/home/username/
ExecStart=/home/username/myenv/bin/jupyter lab
Restart=always
[Install]
WantedBy=multi-user.target
然后启用服务:
sudo systemctl enable jupyter
sudo systemctl start jupyter
常见问题解决
1. 无法连接 Jupyter Lab
-
检查防火墙是否放行端口:
sudo ufw allow 8888
-
确保 Jupyter 配置中
ip='0.0.0.0'
。
2. 内核无法选择
-
确保在虚拟环境中安装了
ipykernel
:pip install ipykernel python -m ipykernel install --user --name=myenv
3. PyTorch CUDA 不可用
-
检查 NVIDIA 驱动和 CUDA 版本:
nvidia-smi nvcc --version
-
重新安装 PyTorch(指定 CUDA 版本):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
总结
步骤 | 命令/操作 |
---|---|
1. 创建环境 | conda create -n myenv python=3.9 或 python3 -m venv ~/myenv |
2. 安装 PyTorch | conda install pytorch 或 pip install torch |
3. 安装 Jupyter Lab | pip install jupyterlab ipykernel |
4. 配置内核 | python -m ipykernel install --user --name=myenv |
5. 配置远程访问 | 修改 jupyter_lab_config.py |
6. 启动 Jupyter Lab | nohup jupyter lab > jupyter.log 2>&1 & |
7. 本地访问 | ssh -L 8888:localhost:8888 user@server |
现在你应该可以在浏览器中访问 Jupyter Lab,并在 Linux 服务器上运行 PyTorch 代码了! 🚀
进行SSH连接的软件
在 Linux 或 Windows 上连接远程服务器(如你的 Jupyter Lab 服务器),可以使用以下 SSH 客户端工具,具体选择取决于你的操作系统和需求:
1. Linux / macOS 用户
(1) 终端自带 SSH(推荐)
直接使用系统终端(Terminal)运行:
ssh username@server_ip -p port_number
- 优点:无需安装,原生支持
- 缺点:功能较基础(无图形化界面)
(2) tmux
或 screen
(管理持久会话)
如果担心 SSH 断开导致任务终止,可以结合 tmux
或 screen
:
tmux new -s mysession # 创建新会话
ssh username@server_ip
# 断开后重新连接:tmux attach -t mysession
2. Windows 用户
(1) PuTTY(经典工具)
- 下载:PuTTY 官网
- 优点:轻量级,支持 SSH/Telnet
- 缺点:界面较老旧,需手动配置端口转发
(2) Windows Terminal + OpenSSH(推荐)
-
安装 OpenSSH:
-
设置 → 应用 → 可选功能 → 添加功能 → 安装
OpenSSH 客户端
-
在 Windows Terminal 或 CMD 中直接使用:
ssh username@server_ip -p 22
-
-
优点:现代终端,支持多标签
-
缺点:需 Windows 10/11
(3) MobaXterm(全能工具)
- 下载:MobaXterm 官网
- 优点:
- 内置 SFTP 文件传输(拖拽上传/下载)
- 支持 X11 转发(图形化应用)
- 多标签管理
- 缺点:免费版有会话数量限制
(4) Bitvise SSH Client
- 下载:Bitvise 官网
- 优点:专业级工具,支持 SFTP/端口转发
- 缺点:界面复杂,适合高级用户
3. 跨平台工具(全系统通用)
(1) Tabby(现代终端)
- 下载:Tabby 官网
- 优点:
- 开源免费,支持 Windows/macOS/Linux
- 美观的界面,内置 SFTP
- 缺点:资源占用较高
(2) Termius(云同步)
- 下载:Termius 官网
- 优点:
- 支持多设备同步(手机/PC)
- 美观的 UI
- 缺点:高级功能需付费
(3) VS Code + Remote-SSH 插件
- 安装:
- 在 VS Code 扩展商店搜索
Remote - SSH
- 按
F1
→ 输入Remote-SSH: Connect to Host
- 在 VS Code 扩展商店搜索
- 优点:
- 直接在 VS Code 内编辑远程文件
- 集成终端和调试功能
- 缺点:需要熟悉 VS Code
4. 手机端 SSH 工具
- Android:
- Termux(高级用户)
- JuiceSSH(图形化友好)
- iOS:
- Termius
- iSH Shell(模拟 Alpine Linux)
SSH 连接示例
基本连接
ssh username@192.168.1.100 -p 22
带端口转发(访问 Jupyter Lab)
ssh -L 8888:localhost:8888 username@server_ip
然后在本地浏览器访问 http://localhost:8888
。
免密登录(SSH 密钥)
-
生成密钥:
ssh-keygen -t ed25519
-
上传公钥到服务器:
ssh-copy-id username@server_ip
-
直接连接:
ssh username@server_ip
总结:如何选择?
场景 | 推荐工具 |
---|---|
Linux/macOS 用户 | 系统终端 + tmux |
Windows 简单连接 | Windows Terminal + OpenSSH |
Windows 图形化需求 | MobaXterm |
开发者 | VS Code + Remote-SSH |
跨平台/云同步 | Termius 或 Tabby |
手机端 | Termius(iOS/Android) |
选择最适合工作流程的工具即可!如果有文件传输需求,推荐 MobaXterm 或 VS Code Remote-SSH;如果追求简洁,直接用系统自带的 SSH 客户端即可。 🚀