
# 使用Code Server进行代码开发
[Code Server](https://github.com/coder/code-server)是一个开源项目，它将Visual Studio Code完整运行在远程服务器上，并通过浏览器提供访问能力。主要支持以下能力：
- **完整VS Code体验：**支持扩展市场、调试器、终端、Git等几乎所有原生功能。
- **跨平台访问：**只需浏览器即可在任何设备上编写代码。
- **统一开发环境：**代码、配置和依赖项均部署在服务器上，确保环境一致性。
- **私有部署**：数据完全由用户掌控。
本文介绍如何在Notebook实例使用Code Server进行代码开发。
#### 注意事项
- 在使用Code Server AI助手前，请仔细阅读[Code Server AI助手风险说明及安全建议](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_0023.html)。
- 企业用户使用Code Server时，需满足一定的网络要求，详情请参见[企业用户使用Code Server网络要求](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_0024.html)。
 
 #### 约束限制
您创建的Notebook实例需满足如下条件：
- 已配置Code Server。
  - 未创建Notebook实例：[创建Notebook实例](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_3495.html)时，"环境配置"中需选中Code Server。
    图1选中Code Server   
    ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002660142125.png "点击放大") 
  
  - 已创建Notebook实例：在Notebook实例详情页的"基本信息"页签，可查看是否配置Code Server。
    图2Notebook实例详情页   
    ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002630023310.png "点击放大") 
   
- 部分容器镜像版本的操作系统暂不支持Code Server。具体限制如下：
  查看容器镜像的操作系统：假设预置镜像的地址为pytorch_cuda: pytorch_2.7.0-cuda_12.8-py_3.11.10-ubuntu_22.04-x86_64-20251215163925-4e5422a，其中"ubuntu_22.04"为镜像的操作系统。
  表1操作系统支持情况 
  | 容器镜像的操作系统              | 架构  | 是否支持Code Server |
  |:---|:---|:---|
  | ubuntu_18.04           | x86 | 不支持             |
  | ubuntu_20.04           | x86 | 支持              |
  | ubuntu_22.04           | x86 | 支持              |
  | hce_2.0/hce2.0         | ARM | 支持              |
  | euler_2.8.3/euler2.8.3 | ARM | 支持              |
  | euler_2.10/euler2.10   | ARM | 支持              |
     
  
 
#### 启动Code Server
1. 登录[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)，在左侧导航栏按需选择以下操作。
   - 新版控制台：选择"模型开发与训练 \> Notebook"，进入"Notebook"页面。
   
   - 旧版控制台：选择"开发空间 \> Notebook"，进入"Notebook"页面。
    
2. 在"状态"为"运行中"的Notebook实例的操作列，单击"接入环境"，在"接入方式"对话框的"WebIDE"页签，单击"Code Server 接入"右侧的"接入"。
   图3Code Server接入   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002558595682.png "点击放大")
   
   接入成功后，可以看到其界面布局、操作逻辑和功能都和桌面版VS Code高度一致。
   
 
#### Code Server功能介绍
下文介绍Code Server的界面布局及功能、核心功能特性、插件扩展市场。
#### 界面布局及功能
Code Server的界面分为以下几个主要区域：
表2Code Server区域说明 
| 区域    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|
| 顶部标题栏 | 显示当前打开的文件或文件夹名称，以及窗口控制按钮。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 左侧活动栏 | 包含多个图标按钮，用于切换不同的视图，支持如下功能： - ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002559957826.png "点击放大")文件资源管理器（Explorer）：浏览和管理项目文件。  - ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002589322253.png "点击放大")搜索（Search）：在项目中搜索文件内容和符号。  - ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002558762432.png "点击放大")源代码管理（Source Control）：集成Git操作，支持提交、分支管理、查看差异等。  - ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002589242237.png "点击放大")调试（Run and Debug）：配置和运行调试任务。  - ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002589322531.png)扩展（Extensions）：管理插件安装和配置。  - ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002559798172.png)测试（Testing）：配置和运行测试用例。  - ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002558603646.png "点击放大")GitLens：强大的Git操作插件，支持代码历史、差异查看等。  - ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002558767684.png "点击放大")Cline：AI编程助手，基于大语言模型的智能开发插件。   |
| 左侧边栏  | 显示活动栏选中视图的具体内容，如文件树、搜索结果、插件列表等。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 编辑器区域 | 代码编辑的主区域，支持多标签页同时打开、代码高亮、语法提示等功能。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 底部状态栏 | 显示当前文件的语言模式、行号、列号，以及Git分支、错误警告等信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 集成终端  | 位于底部，支持创建多个终端实例，可以同时运行多个命令。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
#### 核心功能特性
- **完整的扩展生态** ：Code Server默认使用Open-VSX扩展市场，您可以通过左侧的![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002559798174.png "点击放大")图标搜索并安装绝大多数流行的开源扩展，例如Python、GitLens、Prettier等。
- **内置终端与Git**：集成的终端是其一大亮点，您可以在浏览器中完成从编码到构建、测试、部署的全部流程，体验如同本地开发。同时，源代码管理视图集成了Git操作，方便您进行代码的提交、分支管理和查看差异。
- **便捷的端口转发**：当您开发Web应用或需要访问服务器上的特定服务端口时，Code Server内置了端口转发功能。您可以在端口 (PORTS)面板中轻松地将远程端口映射到本地，方便调试。
- **设置同步与持久化**：Code Server的配置、主题、快捷键和已安装的扩展都保存在服务器的配置目录中。这意味着您无论在哪台设备上登录，都能获得完全一致的开发环境。
 
#### 插件扩展市场
Code Server的插件市场提供了丰富的开发工具，Notebook实例预装了一些常用插件，您也可以按需下载其他插件。
图4插件市场   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002589327777.png)
Notebook实例预装的常用插件及说明如下：
表3预装插件说明 
| 插件名称                       | 版本            | 说明                                                          |
|:---|:---|:---|
| Python                     | 2025.6.1      | Python语言支持，提供代码补全、语法检查等功能。                                  |
| Python Debugger            | 2025.18.0     | Python调试器，支持断点调试、变量查看等。                                     |
| Python Environments        | 1.10.0        | 自动检测、管理并激活不同的Python解释器和虚拟环境。                                |
| Code Spell Checker         | 4.1.0         | 实时检测源代码、注释和文档中的英文拼写错误，遵循驼峰命名法（camelCase）和蛇形命名法（snake_case）。 |
| EditorConfig for VS Code   | 0.16.6        | 团队定义和维护统一的编码样式。                                             |
| GitLens                    | 17.1.1        | 强大的Git操作插件，支持代码历史、差异查看等。                                    |
| isort                      | 2023.11.0-dev | 对代码中的import语句进行自动排序、分组和格式化。                                 |
| Jupyter                    | 2024.8.1      | Jupyter Notebook支持。                                         |
| Jupyter Cell Tags          | 0.1.9         | Jupyter单元格标签管理。                                             |
| Jupyter Keymap             | 1.1.2         | Jupyter键盘快捷键。                                               |
| Jupyter Notebook Renderers | 1.0.19        | Jupyter Notebook渲染器。                                        |
| Jupyter Slide Show         | 0.1.6         | Jupyter幻灯片演示。                                               |
| Pyright                    | 1.1.400       | 标准的Python静态类型检查器，旨在提升大型Python代码库的类型安全性、开发效率和代码质量。           |
| Cline                      | 3.75.0        | AI编程助手，基于大语言模型的智能开发插件。                                      |
   
您也可以在插件市场下载所需的其他插件。以Markdown相关插件为例，在搜索栏中输入Markdown，选中需要下载的插件，单击"Install"。
#### Python代码调试
Notebook已在Code Server中预装了Python相关的依赖插件，您可以直接进行Python代码调试。
#### 代码准备
1. 在工作区右键新建Python文件，文件名称后缀为.py，例如test.py。
   图5新建Python文件   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002589248289.png "点击放大") 
2. 将如下Python代码拷贝至Python文件中。
   ```
   import os 
   print(os.environ.get('PATH'))
   print("Hello World")
   print("Welcome to Code Server")
   ```
   图6拷贝Python代码   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002558770736.png "点击放大") 
 
#### 运行Python文件
在Python文件右上角，单击![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002589250699.png)图标，下方"TERMINAL"页签会展示运行的结果。
图7TERMINAL运行结果   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002558772814.png "点击放大")
#### 调试Python文件
1. 在Python文件中添加断点。在文件行号左侧，单击鼠标左键添加或删除断点。
   图8添加断点   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002558612244.png) 
2. 在左侧活动栏，单击![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002590437617.png "点击放大")图标，单击"Run and Debug"，选择"Python Debugger"，在"Select a debug configuration"弹窗，选择"Python File Debug the currently active Python file"，进入调试模式。
3. 代码运行至第一个断点处停止，可以在左侧变量区查看变量，也可以在上方操作栏执行重试、继续等操作。
 
#### 相关文档
- [Notebook Cline最佳实践](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_20_0002.html)：Cline是集成在Code Server中的AI编程助手，能够根据自然语言描述自动完成代码编写、文件创建、服务启动等开发任务。
- [在Code Server中打开.ipynb文件，首次执行代码单元格有明显延迟，怎么办？](https://support.huaweicloud.com/modelarts_faq/modelarts_notebook_4308.html)
 
