非常抱歉,上文的错误,导致很多朋友表示还是有问题,其实就是一个顺序的错误,本文将过程重新写一下,希望对大家有帮助,大家慢慢看
原文链接:原文
背景:在linux系统下没有配好DOTA_devkit,失败无奈转向windows10
解决:import _polyiou ModuleNotFoundError: No module named '_polyiou’问题
Windows10下编译DOTA_devkit
安装swig
下载swig以后,将swig的环境变量配置到系统的环境变量中
将swig环境变量配进去,是为了替代下面这句命令:DOTA_devkit的官方安装步骤一
测试swig的安装是否成功
能够输出这样的就可以了,不难的,慢慢来,到这里,已经完成了最难的了
以上都和原文相同。下面开始不同
下载DOTA_devkit文件,坑来了
这里首先去下载这个文件,下载文件后,解压,进入文件夹,先找到polyiou.py这个文件,进行修改,如下图
先解释一下_polyiou.cp36-win_amd64.pyd文件:
_polyiou:这个是基于任何系统都会有保留的
cp36:指的是python版本,我的是python3.6.9
win:windows
amd64:操作系统64位
这个文件是通过后面的命令python setup.py build_ext --inplace生成的,但是我们要在这个命令之前,先将polyiou.py进行修改
解释一下:先找到左边红框那个文件,然后再看右边红框代码。那个代码注释掉的是原文件的代码,意思就是说,先去找_polyiou.cp36-win_amd64.pyd文件,找到了然后就导入生成的_polyiou.cp36-win_amd64.pyd文件(后面会生成,后面说),但是遗憾的是imp现在不用了,改为用importlib了,所以更改导入代码就可以了
**强调:**红色箭头是我自己以为导入文件的时候,必须写_polyiou.cp36-win_amd64.pyd全名才可以,其实不用只需要写到_polyiou就可以了,所以就照着绿色箭头写就可以了。而且在后面运行python setup.py build_ext --inplace的时候,这个文件会被修改掉
这里千万要在python setup.py build_ext --inplace之前做,不然在后面做,这个文件就被修改了
激活虚拟环境
在下载文件以后,激活相应的虚拟环境,同时进入到文件里面,如下图
然后再执行swig -c++ -python polyiou.i这个命令,如下图
是没有任何输出的,表示就没有问题
然后再执行python setup.py build_ext --inplace,如下图
不出意外,会报错,如下图,哈哈哈哈,我也遇到了,逗逗你们
看不懂,错误看不懂,没事,去GitHub,链接:链接
这个点赞三个的,照着他的方式来修改保存退出
继续执行上面的那个代码,如下图这样就可以了
此时在文件夹里面,就会多出一个_polyiou.cp36-win_amd64.pyd文件,如下图
到这里,就全部搞定了,后面就没有坑了
测试
宝贝们,现在开始测试了,看看搞了这么久,ok不ok。
直接复制吧,jupyter notebook,找到你们看到是图片不能复制命令脑壳疼了一下
花花绿绿的可视化框,你们是可以看到的,但是到了下面的步骤的时候,请记得新建相应的文件夹
就是说,这里的Task1,Task1_merge,restoredexample,restoredexample里面的子文件夹labelTxt都是没有的,需要自己创建,如下图
restoredexample文件夹如下所示
images文件夹:去将examples的images文件夹下面拷贝进来,这是恢复的文件夹,所以这个图片用原examples的图片就可以了
labelTxt文件夹:这个文件夹里面的内容是程序生成的,里面是images文件夹所有图片的位置坐标,我们通过labelTxt文件夹里面的坐标可视化images文件夹的图片
下面这个代码意思就是拿labelTxt恢复出来的坐标可视化原图片的物体,看恢复的对不对
好了,打完收工,不懂继续评论吧,应该是能懂,反正按照步骤一下一下来,不要乱了步骤就行,宝贝们,再会