当前位置: 首页 > java >正文

研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 密钥。

步骤:

  1. 安装 Remote - SSH 扩展:

    • 打开 VS Code/Cursor。
    • 前往扩展视图 (Cmd + Shift + X),搜索 “Remote - SSH” 并安装由 Microsoft 提供的扩展。
  2. 连接到远程主机:

    • 点击左下角的绿色远程状态指示器,或打开命令面板 (Cmd + Shift + P) 搜索 “Remote-SSH: Connect to Host…”。
    • 选择 “Add New SSH Host…”。
    • 输入连接命令,格式为 user@hostname_or_ip,例如 your_username@your_server_ip
    • 选择一个 SSH 配置文件保存该主机信息 (通常是 ~/.ssh/config)。您可以在配置文件中添加 PortIdentityFile 等更多配置。
  3. 建立连接并安装 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 使用的解释器”的理解上。

  1. 终端激活环境: 在集成终端中执行 conda activate pytorch_env 只会改变当前这个终端会话的环境变量和可执行程序路径。在该终端中直接运行 pythonpip 会使用虚拟环境中的版本。
  2. VS Code/Cursor 运行代码: 然而,当您点击编辑器中的“运行”按钮或使用相关命令时,VS Code/Cursor 执行代码依赖的是您在界面右下角状态栏中选择的那个 Python 解释器。它不会自动去检测当前活跃的终端环境。如果右下角选择的解释器不是 pytorch_env 中的那个,或者尽管路径正确但 VS Code 未正确初始化,就会使用错误的环境来运行代码。

所以,您在终端中激活环境是正确的,但 VS Code/Cursor 在执行代码时没有使用这个环境,而是使用了另一个没有安装 PyTorch 的环境,导致报错。手动点击右下角明确选择 pytorch_env 的解释器,是直接告诉 VS Code/Cursor “用这个解释器来跑我的代码”,这才使用了正确的环境。

解决方法:

确保 VS Code/Cursor 本身配置为使用您的虚拟环境中的 Python 解释器,并在该环境中安装所需的库。

  1. 确保库已安装在虚拟环境中:

    • 打开连接到远程服务器的 Cursor 终端。
    • 激活您的 pytorch_env 虚拟环境:conda activate pytorch_env (或相应的激活命令)。
    • 在已激活的环境中,验证 PyTorch 是否安装:pip listpython -c "import torch; print(torch.__version__)"
    • 如果未安装,执行安装命令(例如):pip install torch torchvision torchaudio (根据 PyTorch 官网选择适合您系统的命令)。
  2. 在 VS Code/Cursor 中选择正确的解释器 (最重要):

    • 在连接到远程服务器的 Cursor 窗口中,查看底部状态栏的右侧,找到显示的 Python 解释器信息。
    • 点击该信息。会弹出一个列表,显示 VS Code/Cursor 检测到的所有 Python 环境。
    • 从列表中选择您的 pytorch_env 虚拟环境对应的 Python 解释器路径(它通常位于您的虚拟环境文件夹下的 bin/python 路径)。

完成以上步骤后,当您点击运行按钮或调试时,VS Code/Cursor 就会使用您在状态栏指定的、并且已经安装了 PyTorch 的 pytorch_env 虚拟环境来执行您的代码,ModuleNotFoundError 错误也就会随之解决。

希望这篇总结能帮助到遇到相似问题的开发者!

http://www.xdnf.cn/news/3828.html

相关文章:

  • FFT实现(Cooley-Tukey算法)
  • WEB 前端学 JAVA(二)Java 的发展与技术图谱简介
  • TS 字面量类型
  • Mybatis学习(下)
  • LabVIEW开发风量智能监测系统
  • 【杂谈】-探索 NVIDIA Dynamo 的高性能架构
  • 牛客周赛90 C题- Tk的构造数组 题解
  • STM32智能垃圾桶:四种控制模式实战开发
  • 58认知干货:创业经验分享及企业形式的汇总
  • 【AI面试准备】逻辑思维、严谨性、总结能力、沟通协作、适应力与目标导向
  • 文件一键解密软件工具(支持pdf、word、excel、ppt、rar、zip格式文件)
  • 链接文件及功能安全:英飞凌官方文档摘录 - Tasking链接文件
  • 开上“Python跑的车”——自动驾驶数据可视化的落地之道
  • 使用python写多文件#inlcude
  • Spring AI Advisors API:AI交互的灵活增强利器
  • ES6入门---第三单元 模块三:async、await
  • 网络:TCP三次握手、四次挥手
  • 介词:连接名词与句子其他成分的桥梁
  • 互联网大厂Java面试:从基础到实战
  • 【漫话机器学习系列】239.训练错误率(Training Error Rate)
  • vulkanscenegraph显示倾斜模型(6.4)-多线程下的记录与提交
  • Dalvik虚拟机和ART虚拟机
  • ART 下 Dex 加载流程源码分析 和 通用脱壳点
  • 【ArcGIS微课1000例】0145:如何按照自定义形状裁剪数据框?
  • 学习黑客Linux权限
  • 【中间件】brpc_基础_用户态线程中断
  • LeetCode每日一题5.4
  • 架构思维:利用全量缓存架构构建毫秒级的读服务
  • 2001-2023年 上市公司-企业广告支出数据-社科数据
  • 使用宝塔面板、青龙面板实现定时推送功能