
# 训练作业日志中提示"No module named .\*"
用户请按照以下思路进行逐步排查：
1. [检查依赖包是否存在]
2. [检查依赖包路径是否能被识别]
3. [检查训练作业使用的资源规格是否正确]
4. [建议与总结]
 #### 检查依赖包是否存在
如果依赖包不存在，您可以使用以下两种方式完成依赖包的安装。
- 方式一（推荐使用）：在[创建我的算法](https://support.huaweicloud.com/develop-modelarts/develop-modelarts-0003.html)时，需要在"代码目录"下放置相应的文件或安装包。
  请根据依赖包的类型，在代码目录下放置对应文件：
  - **依赖包为开源安装包时**
    在"代码目录"中创建一个命名为"pip-requirements.txt"的文件，并且在文件中写明依赖包的包名及其版本号，格式为"包名==版本号"。
    例如，"代码目录"对应的OBS路径下，包含模型文件，同时还存在"pip-requirements.txt"文件。"代码目录"的结构如下所示：
    ```
    |---模型启动文件所在OBS文件夹
         |---model.py               #模型启动文件。
         |---pip-requirements.txt   #定义的配置文件，用于指定依赖包的包名及版本号。
    ```
    "pip-requirements.txt"文件内容如下所示：
    ```
    alembic==0.8.6
    bleach==1.4.3
    click==6.6
    ```
    
  
  - **依赖包为whl包时**
    如果训练后台不支持下载开源安装包或者使用用户编译的whl包时，由于系统无法自动下载并安装，因此需要在"代码目录"放置此whl包，同时创建一个命名为"pip-requirements.txt"的文件，并且在文件中指定此whl包的包名。依赖包必须为".whl"格式的文件。
    例如，"代码目录"对应的OBS路径下，包含模型文件、whl包，同时还存在"pip-requirements.txt"文件。"代码目录"的结构如下所示：
    ```
    |---模型启动文件所在OBS文件夹
         |---model.py               #模型启动文件。
         |---XXX.whl                #依赖包。依赖多个时，此处放置多个。
         |---pip-requirements.txt   #定义的配置文件，用于指定依赖包的包名。
    ```
    "pip-requirements.txt"文件内容如下所示：
    ```
    numpy-1.15.4-cp36-cp36m-manylinux1_x86_64.whl
    tensorflow-1.8.0-cp36-cp36m-manylinux1_x86_64.whl
    ```
    
   
- 方式二：可以在启动文件添加如下代码安装依赖包：
  ```
  import os
  os.system('pip install xxx')
  ```
  
方式一在训练作业启动前即可完成相关依赖包的下载与安装，而方式二是运行启动文件过程中进行依赖包的下载与安装。
 #### 检查依赖包路径是否能被识别
代码如果在本地运行，需要将"project_dir"加入到PYTHONPATH或者将整个"project_dir"安装到"site-package"中才能运行。但是在ModelArts可以将"project_dir"加入到"sys.path"中解决该问题。
使用from module_dir import module_file来导包，代码结构如下：
```
project_dir
|- main.py
|- module_dir
|  |- __init__.py
|  |- module_file.py
```
 #### 检查训练作业使用的资源规格是否正确
训练作业报错No module named npu_bridge.npu_init
```
from npu_bridge.npu_init import *
ImportError: No module named npu_bridge.npu_init
```
检查下训练作业使用的规格是否支持NPU，有可能是训练时使用了GPU规格，导致发生了NPU相关调用报错。
 #### 建议与总结
在创建训练作业前，推荐您先使用ModelArts开发环境调试训练代码，避免代码迁移过程中的错误。
- 直接使用线上notebook环境调试请参考[使用JupyterLab开发模型](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_0012.html)。
- 配置本地IDE（Pycharm或者VSCode）连接云上环境调试请参考[使用本地IDE开发模型](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_0019.html)。
 
