文档首页/ AI开发平台ModelArts/ 故障排除/ 训练作业/ 云上迁移适配故障/ 如何安装第三方包,安装报错的处理方法
更新时间:2022-12-08 GMT+08:00

如何安装第三方包,安装报错的处理方法

问题现象

  • ModelArts如何安装自定义库函数,例如“apex”
  • ModelArts训练环境安装第三方包时出现如下报错:
    xxx.whl is not a supported wheel on this platform

原因分析

由于安装的文件名格式不支持,导致出现“xxx.whl is not a supported wheel on this platform”报错,具体解决方法请参见2

处理方法

  1. 安装第三方包
    1. pip中存在的包,使用如下代码:
      import os
      os.system('pip install xxx')
    2. pip源中不存在的包,此处以“apex”为例,请您用如下方式将安装包上传到OBS桶中。 该样例已将安装包上传至“obs://cnnorth4-test/codes/mox_benchmarks/apex-master/”中,将在启动文件中添加以下代码进行安装。
      try:
          import apex
      except Exception:
          import os
          import moxing as mox
          mox.file.copy_parallel('obs://cnnorth4-test/codes/mox_benchmarks/apex-master/', '/cache/apex-master')
          os.system('pip --default-timeout=100 install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" /cache/apex-master')
  2. 安装报错
    “xxx.whl”文件无法安装,需要您按照如下步骤排查:
    1. 当出现“xxx.whl”文件无法安装,在启动文件中添加如下代码,查看当前pip命令支持的文件名和版本。
      import pip
      print(pip.pep425tags.get_supported())

      获取到支持的文件名和版本如下:

      [('cp36', 'cp36m', 'manylinux1_x86_64'), ('cp36', 'cp36m', 'linux_x86_64'), ('cp36', 'abi3', 'manylinux1_x86_64'), ('cp36', 'abi3', 'linux_x86_64'), ('cp36', 'none', 'manylinux1_x86_64'), ('cp36', 'none', 'linux_x86_64'), ('cp35', 'abi3', 'manylinux1_x86_64'), ('cp35', 'abi3', 'linux_x86_64'), ('cp34', 'abi3', 'manylinux1_x86_64'), ('cp34', 'abi3', 'linux_x86_64'), ('cp33', 'abi3', 'manylinux1_x86_64'), ('cp33', 'abi3', 'linux_x86_64'), ('cp32', 'abi3', 'manylinux1_x86_64'), ('cp32', 'abi3', 'linux_x86_64'), ('py3', 'none', 'manylinux1_x86_64'), ('py3', 'none', 'linux_x86_64'), ('cp36', 'none', 'any'), ('cp3', 'none', 'any'), ('py36', 'none', 'any'), ('py3', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
    2. “faiss_gpu-1.5.3-cp36-cp36m-manylinux2010_x86_64.whl”更改为“faiss_gpu-1.5.3-cp36-cp36m-manylinux1_x86_64.whl”,并安装,执行命令如下:
      import moxing as mox
      import os
      
      mox.file.copy('obs://wolfros-net/zp/AI/code/faiss_gpu-1.5.3-cp36-cp36m-manylinux2010_x86_64.whl','/cache/faiss_gpu-1.5.3-cp36-cp36m-manylinux1_x86_64.whl')
      os.system('pip install /cache/faiss_gpu-1.5.3-cp36-cp36m-manylinux1_x86_64.whl')