【深度学习】解决openpose安装过程中,python环境下测试运行时找不到DLL文件的原因

这几天要用到openpose,网上的安装教程已经比较详细了。
在安装过程中主要花费时间的问题就是这个openpose的dll文件找不到。

但对于找不到dll文件这个错误,网上的解决方案大部分都是将bin文件夹下的文件以及x64/release下的文件复制到python/openpose。

按照这个方案也可以运行,但是我比较好奇到底为什那么会这样,并且这种解决方案可以解决。

网上他人方案

bin文件夹:

在这里插入图片描述

x64/release文件夹:

在这里插入图片描述

python/openpose/release文件夹:

在这里插入图片描述

debug过程以及根本原因

花了好长时间调试后发现根本原因在于系统的环境变量出现了冲突。
具体部分在代码中的这一句:
在这里插入图片描述
这一句

os.environ['PATH'] = os.environ['PATH'] + dir_path + '/../../x64/Release;' + dir_path + '/../../bin;'

的作用是将这两个路径临时添加到系统环境变量中。
发现错误在此处的方法是,
我分别尝试了将x64/release,bin中的文件分别复制到python/openpose/release中,这样发现只要将bin中的文件复制到后者中就可以正常运行,这就证明

os.environ['PATH'] = os.environ['PATH'] + dir_path + '/../../x64/Release;' + dir_path + '/../../bin;'

这句代码可以成功找到x64/release文件夹,但不能找到bin。从此我怀疑到正点上:bin的环境路径有冲突。
然后我将bin路径直接添加到系统的环境变量中:在这里插入图片描述
然后将刚才代码中那句话注释调还是不能正常运行,还是找不到DLL。
然后我将这个bin路径逐个上移。最终在这个位置,代码终于成功运行!
在这里插入图片描述
由此得到证明,是因为openpose生成的解决方案中bin路径于anaconda的bin路径存在某些冲突,导致代码运行过程中无法进入openpose的bin文件夹(个人猜测可能是存在某些文件重名,找到anaconda中的之后就不再找了)

根本解决办法

为了再次验证这一结论,将代码中:

os.environ['PATH'] = os.environ['PATH'] + dir_path + '/../../x64/Release;' + dir_path + '/../../bin;'

修改为:

os.environ['PATH'] = dir_path + '/../../x64/Release;' + dir_path + '/../../bin;' + os.environ['PATH']

即将这两个路径临时添加到系统本身的环境变量之前,也可以成功运行!
在这里插入图片描述

到这问题终于得到解决,写篇博客记录一下,同时希望能帮你节省时间。

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值