AI开发平台ModelArts-训练作业日志中提示“No module named .*”:检查依赖包是否存在
检查依赖包是否存在
如果依赖包不存在,您可以使用以下两种方式完成依赖包的安装。
- 方式一(推荐使用):在创建我的算法时,需要在“代码目录”下放置相应的文件或安装包。
请根据依赖包的类型,在代码目录下放置对应文件:
- 依赖包为开源安装包时
在“代码目录”中创建一个命名为“pip-requirements.txt”的文件,并且在文件中写明依赖包的包名及其版本号,格式为“包名==版本号”。
例如,“代码目录”对应的OBS路径下,包含模型文件,同时还存在“pip-requirements.txt”文件。“代码目录”的结构如下所示:
|---模型启动文件所在OBS文件夹 |---model.py #模型启动文件。 |---pip-requirements.txt #定义的配置文件,用于指定依赖包的包名及版本号。
“pip-requirements.txt”文件内容如下所示:
alembic==0.8.6bleach==1.4.3click==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.whltensorflow-1.8.0-cp36-cp36m-manylinux1_x86_64.whl
- 依赖包为开源安装包时
- 方式二:可以在启动文件添加如下代码安装依赖包:
import osos.system('pip install xxx')
方式一在训练作业启动前即可完成相关依赖包的下载与安装,而方式二是运行启动文件过程中进行依赖包的下载与安装。