ModuleNotFoundError: No module named ‘MultiScaleDeformableAttention
文件是 Python 的二进制分发格式,包含预编译的 Python 代码和其他资源文件,可以直接安装而无需编译。不想再去折腾版本了,继续搜索有没有其他的办法,找到了这份。这个错误是因为 .whl 文件名不符合。通过github上的原项目进行安装。,但是这里提到的使用下面这个。命令安装的方式是不可行的。
·
1. 方案一
通过github上的原项目进行安装。
- step1:下载项目源码
- step2:执行下面两行代码即可
cd ./models/ops
sh ./make.sh
2. 方案二
我在使用方案一时报错:
error: command 'cuda-11.6/bin/nvcc' failed with exit status 1
搜索网上资料,这篇博客中说错误原因可能是cuda和gcc版本不匹配。
2.1 解决方法1
注:这个方法应该只能适配python3.7版本,最后我使用python3.8虽然能成功安装(conda list中有),但是import导入时会报错,推荐解决方法2。
不想再去折腾版本了,继续搜索有没有其他的办法,找到了这份参考资料,但是这里提到的使用下面这个pip命令安装的方式是不可行的。
pip install MultiScaleDeformableAttention
点击Download file,发现有预编译的whl文件,.whl 文件是 Python 的二进制分发格式,包含预编译的 Python 代码和其他资源文件,可以直接安装而无需编译。
但是直接使用下载好的whl文件进行安装会报错:
ERROR: MultiScaleDeformableAttention-0.1-none-any.whl is not a valid wheel filename.
这个错误是因为 .whl 文件名不符合 PEP 427 规范,一个有效的 .whl 文件名应该遵循以下格式:
{distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl
手动修改whl文件名后,使用pip命令进行安装:
pip install MultiScaleDeformableAttention-0.1-py3-none-any.whl
2.2 解决方法2
既然是cuda和gcc版本不匹配,那就修改gcc版本(或cuda版本),我这里修改了gcc的版本,相比于修改cuda版本比较方便。具体操作请看下面的文章。
# 安装g++ 7
sudo apt install gcc-7 g++-7
# 修改优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100 --slave /usr/bin/g++ g++ /usr/bin/g++-7 --slave /usr/bin/gcov gcov /usr/bin/gcov-7
# 切换版本
sudo update-alternatives --config gcc
修改完成后参照方案1进行操作即可安装成功。
参考文章
更多推荐

所有评论(0)