研0大模型学习(第11天)
Mac 用户看过来:使用 VS Code/Cursor 远程连接 Linux 服务器及 PyTorch 环境配置踩坑记录
作为开发者,我们经常需要在远程 Linux 服务器上进行开发和实验,特别是对于深度学习等计算密集型任务。VS Code 和 Cursor(基于 VS Code)凭借其强大的功能和丰富的扩展生态,成为了许多人的首选 IDE。本文将带你了解如何使用 Mac 上的 VS Code 或 Cursor 远程连接到 Linux 服务器,并解决在 PyTorch 环境配置中可能遇到的常见问题。
1. 建立远程连接:Mac VS Code/Cursor via SSH
VS Code 和 Cursor 都提供了强大的 SSH 远程开发功能,让你可以在本地流畅地编辑代码,而实际运行和调试都在远程服务器上进行。
前提条件:
- Mac 上安装了 VS Code 或 Cursor。
- Mac 上安装了 OpenSSH 客户端(macOS 自带)。
- Linux 服务器上安装并运行了 SSH 服务器(sshd)。
- 拥有服务器的 IP 地址/主机名、用户名及密码或 SSH 密钥。
步骤:
-
安装 Remote - SSH 扩展:
- 打开 VS Code/Cursor。
- 前往扩展视图 (
Cmd + Shift + X
),搜索 “Remote - SSH” 并安装由 Microsoft 提供的扩展。
-
连接到远程主机:
- 点击左下角的绿色远程状态指示器,或打开命令面板 (
Cmd + Shift + P
) 搜索 “Remote-SSH: Connect to Host…”。 - 选择 “Add New SSH Host…”。
- 输入连接命令,格式为
user@hostname_or_ip
,例如your_username@your_server_ip
。 - 选择一个 SSH 配置文件保存该主机信息 (通常是
~/.ssh/config
)。您可以在配置文件中添加Port
、IdentityFile
等更多配置。
- 点击左下角的绿色远程状态指示器,或打开命令面板 (
-
建立连接并安装 VS Code Server:
- 再次执行 “Remote-SSH: Connect to Host…” 并选择您刚刚添加或已有的主机。
- 首次连接可能需要确认主机指纹并输入密码(如果使用密码认证)。
- 连接成功后,VS Code/Cursor 会自动在远程服务器上安装一个 VS Code Server。
- 安装完成后,会打开一个新的窗口,表示已成功连接到远程服务器。
2. 界面调整小技巧:把 Cursor 变得更像 VS Code
Cursor 基于 VS Code,因此很多界面设置是相通的。如果您想让 Cursor 的界面更接近默认的 VS Code 风格,可以进行以下调整:
更改颜色主题和文件图标主题:
- 打开设置 (
Cmd + ,
)。 - 搜索
Color Theme
,选择如Dark+ (default dark)
或Light+ (default light)
。 - 搜索
File Icon Theme
,选择如Seti (Visual Studio Code)
。
调整活动栏位置 (解决图示问题):
如果您发现侧边栏的图标(如文件管理器、搜索等)在顶部横向排列,而您想要 VS Code 默认的左侧竖向排列,可以这样修改:
- 打开设置 (
Cmd + ,
)。 - 搜索
Activity Bar position
或活动栏位置
。 - 找到
Workbench: Activity Bar.Position
设置项。 - 将其值从
top
改为left
。
更改后,活动栏会立即移动到窗口左侧。
3. 解决 PyTorch 环境中的 ModuleNotFoundError
在使用远程 Python 环境(特别是带有虚拟环境)时,ModuleNotFoundError
是一个常见的问题。以 PyTorch 的 No module named 'torch'
为例,分析并解决它。
遇到的问题:
在远程服务器上使用 Conda 激活了 pytorch_env
虚拟环境,例如在终端中执行 conda activate pytorch_env
。然后在 Cursor 中点击运行按钮执行 Python 代码 (nn.py
) 时,依然报错 ModuleNotFoundError: No module named 'torch'
。但手动点击右下角选择 pytorch_env
的解释器后,代码就能正常运行了。
原因分析:
问题出在对“激活虚拟环境”和“VS Code/Cursor 使用的解释器”的理解上。
- 终端激活环境: 在集成终端中执行
conda activate pytorch_env
只会改变当前这个终端会话的环境变量和可执行程序路径。在该终端中直接运行python
或pip
会使用虚拟环境中的版本。 - VS Code/Cursor 运行代码: 然而,当您点击编辑器中的“运行”按钮或使用相关命令时,VS Code/Cursor 执行代码依赖的是您在界面右下角状态栏中选择的那个 Python 解释器。它不会自动去检测当前活跃的终端环境。如果右下角选择的解释器不是
pytorch_env
中的那个,或者尽管路径正确但 VS Code 未正确初始化,就会使用错误的环境来运行代码。
所以,您在终端中激活环境是正确的,但 VS Code/Cursor 在执行代码时没有使用这个环境,而是使用了另一个没有安装 PyTorch 的环境,导致报错。手动点击右下角明确选择 pytorch_env
的解释器,是直接告诉 VS Code/Cursor “用这个解释器来跑我的代码”,这才使用了正确的环境。
解决方法:
确保 VS Code/Cursor 本身配置为使用您的虚拟环境中的 Python 解释器,并在该环境中安装所需的库。
-
确保库已安装在虚拟环境中:
- 打开连接到远程服务器的 Cursor 终端。
- 激活您的
pytorch_env
虚拟环境:conda activate pytorch_env
(或相应的激活命令)。 - 在已激活的环境中,验证 PyTorch 是否安装:
pip list
或python -c "import torch; print(torch.__version__)"
。 - 如果未安装,执行安装命令(例如):
pip install torch torchvision torchaudio
(根据 PyTorch 官网选择适合您系统的命令)。
-
在 VS Code/Cursor 中选择正确的解释器 (最重要):
- 在连接到远程服务器的 Cursor 窗口中,查看底部状态栏的右侧,找到显示的 Python 解释器信息。
- 点击该信息。会弹出一个列表,显示 VS Code/Cursor 检测到的所有 Python 环境。
- 从列表中选择您的
pytorch_env
虚拟环境对应的 Python 解释器路径(它通常位于您的虚拟环境文件夹下的bin/python
路径)。
完成以上步骤后,当您点击运行按钮或调试时,VS Code/Cursor 就会使用您在状态栏指定的、并且已经安装了 PyTorch 的 pytorch_env
虚拟环境来执行您的代码,ModuleNotFoundError
错误也就会随之解决。
希望这篇总结能帮助到遇到相似问题的开发者!