华为昇腾 import acl 报错 ModuleNotFoundError: No module named 'acl'

https://gitee.com/ascend/samples/issues/I7TWXS#note_20629228

首先,你要知道 acl 在哪里

acl 是一个 so 文件,可以让 cpython 直接调用的 so 文件,是 acnn 的一部分

pypi 上下载不到 acl

所以你要调用 acl,首先要安装 acnn

acnn 默认的安装路径在 /usr/local/Ascend/ascend-toolkit/
acl 默认的安装路径在 /usr/local/Ascend/ascend-toolkit/latest/aarch64-linux/lib64/libamctacl.so

注意我这里是 arm 的,你的要是 x86 的,那么 acl 的路径是不一样的

然后你要知道 python 是怎么导包的

有一个环境变量叫做 PYTHONPATH,这个环境变量是决定 python 去哪里导包的

所以要导入 acl 就很简单,把 acl.so 文件所在路径加入 PYTHONPATH 环境变量就行

你可以把 PYTHONPATH 环境变量的值理解为一个 list,用 ; 分割

如果你害怕配置 PYTHONPATH,或者对 linux 、python 等等啥都不熟悉,继续往下看

acnn 已经默认给你配好了

你安装 acnn 之后,在 acnn 的安装路径下面,会有一个 set_env.sh

比如在我这里的路径就是 /usr/local/Ascend/ascend-toolkit/set_env.sh

查看改文件内容

export ASCEND_TOOLKIT_HOME=/usr/local/Ascend/ascend-toolkit/latest
export LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/lib64/plugin/opskernel:${ASCEND_TOOLKIT_HOME}/lib64/plugin/nnengine:$LD_LIBRARY_PATH
export PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe:$PYTHONPATH
export PATH=${ASCEND_TOOLKIT_HOME}/bin:${ASCEND_TOOLKIT_HOME}/compiler/ccec_compiler/bin:$PATH
export ASCEND_AICPU_PATH=${ASCEND_TOOLKIT_HOME}
export ASCEND_OPP_PATH=${ASCEND_TOOLKIT_HOME}/opp
export TOOLCHAIN_HOME=${ASCEND_TOOLKIT_HOME}/toolkit
export ASCEND_HOME_PATH=${ASCEND_TOOLKIT_HOME}
不要直接复制我的,环境、平台、版本等等不同,文件内容不同

你就会发现这个里面已经帮你配好 PYTHONPATH 了

你一次性,就复制粘贴 export PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe:$PYTHONPATH 到终端执行一下,就 ok 了,这个时候你就可以导入 acl 了

如果你想一劳永逸,你可以把上的所有内容都加到 ~/.bashrc 中去

然后新开一个终端或者 source ~/.bashrc ,然后你就可以愉快的导入 acl 了

你可能感兴趣的:(机器学习神经网络深度学习)