
# 使用PyCharm Toolkit插件连接Notebook
由于AI开发者会使用PyCharm工具开发算法或模型，为方便快速将本地代码提交到ModelArts的训练环境，ModelArts提供了一个PyCharm插件工具PyCharm ToolKit，协助用户完成SSH远程连接Notebook、代码上传、提交训练作业、将训练日志获取到本地展示等，用户只需要专注于本地的代码开发即可。
本章节介绍了使用PyCharm Toolkit如何连接Notebook。
#### 使用限制
- 当前仅支持2019.2-2023.2之间（包含2019.2和2023.2）版本，包括社区版和专业版。
- 使用PyCharm ToolKit远程连接Notebook开发环境，仅限PyCharm专业版。
- 使用PyCharm ToolKit提交训练作业，社区版和专业版都支持，PyCharm ToolKit latest版本仅限提交新版训练作业。
- PyCharm ToolKit工具仅支持Windows版本的PyCharm。
 
#### 前提条件
本地已安装2019.2-2023.2之间（包含2019.2和2023.2）版本的PyCharm专业版。SSH远程开发功能只限PyCharm专业版。单击[PyCharm工具下载地址](https://www.jetbrains.com/pycharm/download/other.html)下载并完成安装。
#### Step1 下载并安装PyCharm ToolKit
在PyCharm中选择"File \> Settings \> Plugins"，在Marketplace里搜索"ModelArts"，单击"Install"即可完成安装。
#### Step2 创建Notebook实例
创建一个Notebook实例，并开启SSH远程开发。该实例状态必须处于"运行中"，具体参见[创建Notebook实例](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_3495.html)。
#### Step3 登录插件
使用访问密钥完成登录认证操作如下：
1. 打开已安装ToolKit工具的PyCharm，在菜单栏中选择"ModelArts \> Edit Credential"。
   图1Edit Credential   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001632762013.png "点击放大")
   ![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/note_3.0-zh-cn.png)
   如果菜单栏中找不到"ModelArts \> Edit Credential"，可能是PyCharm版本过高，PyCharm toolkit未适配2023.2之后版本的PyCharm工具。请下载2019.2-2023.2之间（包含2019.2和2023.2）版本的PyCharm专业版工具。
   
2. 在弹出的对话框中，选择您使用的ModelArts所在区域、填写AK、SK（获取方式[参考链接](https://support.huaweicloud.com/modelarts_faq/modelarts_05_0004.html)），然后单击"OK"完成登录。
   - "Region"：从下拉框中选择区域。必须与[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)在同一区域。
   
   - "Project"：Region选择后，Project自动填充为Region对应的项目。
   
   - "Access Key ID"：填写访问密钥的AK。
   
   - "Secret Access Key"：填写访问密钥的SK。
   
   
   图2填写区域和访问密钥   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001582922058.png "点击放大") 
3. 查看认证结果。 在Event Log区域中，当提示如下类似信息时，表示访问密钥添加成功。
   ```
   16:01Validate Credential Success: The HUAWEI CLOUDcredential is valid.
   ```
   
 
#### Step4 插件自动化配置
1. 在本地的PyCharm开发环境中，单击"ModelArts \> Notebook \> Remote Config..."，配置插件。
   图3配置插件   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001633070209.png) 
2. 此时，会出现该账号已创建的所有包含SSH功能的Notebook列表，下拉进行选择对应Notebook。
   图4Notebook列表   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001402157408.png "点击放大")
   - KeyPair: 需要选择保存在本地的Notebook对应的keypair认证。即创建Notebook时创建的密钥对文件，创建时会直接保存到浏览器默认的下载文件夹中。
   
   - PathMappings: 该参数为本地IDE项目和Notebook对应的同步目录，默认为/home/ma-user/work/project名称，可根据自己实际情况更改。
    
3. 单击"Apply"，配置完成后，重启IDE生效。 重启后初次进行update python interpreter需要耗费20分钟左右。
   
 
#### Step5 使用插件连接云上Notebook
与Notebook断开连接的状态下，单击Notebook名称，根据提示启动本地IDE与Notebook的连接（默认启动时间4小时）。
图5启动连接Notebook   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001477382933.png)
连接状态下，单击Notebook名称，根据提示断开本地IDE与云上Notebook的连接。
图6停止连接Notebook   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001426946576.png)
#### Step6 同步上传本地文件至Notebook
本地文件中的代码直接复制至本地IDE中即可，本地IDE中会自动同步至云上开发环境。
**初始化同步**：
在本地IDE的Project目录下，单击右键，选择"Deployment"，单击"Upload to xxx"（Notebook名称），将本地工程文件上传至指定的Notebook。
图7同步本地文件至Notebook   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001452637393.png "点击放大")
**后续同步:**
只需修改代码后保存（ctrl+s），即可进行自动同步。
插件安装完成后在本地IDE中开启了"Automatic Upload"，本地目录中的文件会自动上传至云端开发环境Notebook。如果未开启，请参考下图开启自动上传。
图8开启自动上传   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001402157396.png "点击放大")
#### Step7 远程调试
单击本地IDE右下角interpreter，选择Notebook的python解释器。
图9选择Python解释器   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001402477184.png "点击放大")
像本地运行代码一样，直接单击运行按钮运行代码即可，此时虽然是在本地IDE点的运行按钮，实际上运行的是云端Notebook里的代码，日志可以回显在本地的日志窗口。
图10查看运行日志   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001452637413.png "点击放大")
也可以单击本地IDE右上角的Run/Debug Configuration按钮来设置运行参数。
图11设置运行参数（1）   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001402477176.png)
选择远程连接到云上开发环境实例对应的Python解释器。
图12设置运行参数（2）   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001452797225.png "点击放大")
当需要调试代码时，可以直接打断点，然后使用debug方式运行程序。
图13使用debug方式运行程序   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001452517077.png "点击放大")
此时可以进入debug模式，代码运行暂停在该行，且可以查看变量的值。
图14Debug模式下查看变量值   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001452757065.png "点击放大")
