小白一个,因为配FairMOT环境需要用到DCNv2,就简单记录一下自己遇到的问题和解决方法。如有错误,请多指教。
首先主要参考了博客https://blog.csdn.net/Ningmoua/article/details/128449797的过程,因为之前装过vs2019,懒得换2017了,就想着先试试,没想到成了。
torch版本是1.7.0的,所以按照这个博主的说法用的https://github.com/rathaROG/DCNv2_Windows/tree/PyTorch-1.10版本的DCNv2。解压以后先放一边。
然后作为小白就傻傻的直接去用vs2019的那个prompt了,就是这个
整了半天,编译出来出错说找不到模块torch,我才想起来我torch装虚拟环境里了,不能直接这么装。然后就参考另一位大佬的说法,https://zhuanlan.zhihu.com/p/527168059,找到自己虚拟环境的vcvars64.bat文件路径,我自己的话是在下图所示路径找到的:
然后按照这位大佬的说法,我用的anaconda的终端,进入我自己的虚拟环境后输入命令
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
然后就可以用了,测试了一下cl显示如下:
之后,进入刚刚下载好的DCNv2文件夹,运行:
make.bat
结果报错了,说我编码有问题,还有个不知道啥意思的warning:
就按照上面说的改,在anaconda虚拟环境那个文件夹底下找到这个cpp_extension.py,这里说274行出错,参考https://blog.csdn.net/tanmx219/article/details/100829920,就把原本的改成:
match = re.search(r'(\d+)\.(\d+)\.(\d+)', compiler_info.decode(' gbk').strip())
然后这个warning参考https://blog.csdn.net/jacke121/article/details/117537367,直接在刚刚的命令行输入:
set DISTUTILS_USE_SDK=1
set MSSdk=1
之后再运行一次make.bat,就成了:
应该算是成了吧?