OpenPose ImportError: No module named '_pafprocess'

系统 win10

cuda和cudnn的教程网上一堆,自己装好

本教程的cuda版本为

python版本3.5.2 tf版本1.7.1

这里上一个作者的环境搭建视频

https://www.youtube.com/watch?v=nUjGLjOmF7o

cmd输入python,再输入import tensorflow as tf,没报错的话,恭喜你,可以开始本教程了。


先上tensorflow版本openpose的地址

https://github.com/ildoonet/tf-pose-estimation

下载解压到任意路径下,建议路径不要太长,我的直接放在D盘

cmd定位到你的tf-pose-estimation-master文件夹

运行

pip install -r requirements.txt
   
   
   
   

requirements.txt文件内容如下

运行这个txt需要安装git,之前安装过的可以跳过这一节


https://git-scm.com/downloads/

点击显示屏里的连接下载

OpenPose ImportError: No module named '_pafprocess'_第1张图片

直接打开exe,一路next

安装成功后会出现桌面快捷方式,或者鼠标右击桌面

OpenPose ImportError: No module named '_pafprocess'_第2张图片

打开git bash,输入git,至此git安装完成,回到前面说的pip install -r requirements.txt

等待安装完成后运行py。好的,一堆报错大概有两个报错

ImportError: No module named '_pafprocess'
   
   
   
   

NameError: name 'ModuleNotFoundError' is not defined
   
   
   
   

这也是最坑的地方。找了很多issues才找到答案

我们看看官方是怎么说的

OpenPose ImportError: No module named '_pafprocess'_第3张图片

没错,我们还要用swig编译一次

ok,先来下swig,同样之前下过的可以跳过这一节


我的swig版本是swigwin-3.0.12,下载地址是http://www.swig.org/download.html

解压zip,比如:D:\backupsoftware

添加环境变量到path, 比如: D:\backupsoftware\swigwin-3.0.12

在命令行执行: swig --help,不报错说明安装成功了。


下面开始swig代码,进入tf-pose-estimation-master文件夹下,cmd定位到D:\tf-pose-estimation\tf_pose\pafprocess

OpenPose ImportError: No module named '_pafprocess'_第4张图片

在Tensorflow环境下,运行

swig -python -c++ pafprocess.i && python setup.py build_ext --inplace
   
   
   
   

如果不报错,你的文件夹内容应该是这样的

OpenPose ImportError: No module named '_pafprocess'_第5张图片

如果报错了,恭喜你,又中奖了,而且我猜你的错误应该是这个

Unable to find vcvarsall.bat
   
   
   
   

首先找到你的vcvarsall.bat所在路径。也就是这个文件

此文件一般位于vs安装路径下,我的路径:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build

接着说一个我们需要让python找到这个文件,这里只介绍我成功的方法,如果不行,百度百度百度

首先找到_msvccompiler.py文件,我的路径是C:\Users\work-25\Anaconda3\envs\tensorflow-gpu\Lib\distutils

你们在自己的python文件下面找找。打开这个文件,找到

def _find_vcvarsall(plat_spec):
   
   
   
   

没修改前,这个方法是这样的


   
   
   
   
  1. def _find_vcvarsall(plat_spec):
  2. try:
  3. key = winreg.OpenKeyEx(
  4. winreg.HKEY_LOCAL_MACHINE,
  5. r"Software\Microsoft\VisualStudio\SxS\VC7",
  6. access=winreg.KEY_READ | winreg.KEY_WOW64_32KEY
  7. )
  8. except OSError:
  9. log.debug( "Visual C++ is not registered")
  10. return None, None
  11. with key:
  12. best_version = 0
  13. best_dir = None
  14. for i in count():
  15. try:
  16. v, vc_dir, vt = winreg.EnumValue(key, i)
  17. except OSError:
  18. break
  19. if v and vt == winreg.REG_SZ and os.path.isdir(vc_dir):
  20. try:
  21. version = int(float(v))
  22. except (ValueError, TypeError):
  23. continue
  24. if version >= 14 and version > best_version:
  25. best_version, best_dir = version, vc_dir
  26. if not best_version:
  27. log.debug( "No suitable Visual C++ version found")
  28. return None, None
  29. vcvarsall = os.path.join(best_dir, "vcvarsall.bat")
  30. if not os.path.isfile(vcvarsall):
  31. log.debug( "%s cannot be found", vcvarsall)
  32. return None, None
  33. vcruntime = None
  34. vcruntime_spec = _VCVARS_PLAT_TO_VCRUNTIME_REDIST.get(plat_spec)
  35. if vcruntime_spec:
  36. vcruntime = os.path.join(best_dir,
  37. vcruntime_spec.format(best_version))
  38. if not os.path.isfile(vcruntime):
  39. log.debug( "%s cannot be found", vcruntime)
  40. vcruntime = None
  41. return vcvarsall, vcruntime

修改后是这样的


   
   
   
   
  1. def _find_vcvarsall(plat_spec):
  2. best_dir = r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build'
  3. best_version = 17
  4. vcruntime = None
  5. vcruntime_spec = _VCVARS_PLAT_TO_VCRUNTIME_REDIST.get(plat_spec)
  6. if vcruntime_spec:
  7. vcruntime = os.path.join(best_dir,
  8. vcruntime_spec.format(best_version))
  9. if not os.path.isfile(vcruntime):
  10. log.debug( "%s cannot be found", vcruntime)
  11. vcruntime = None
  12. print(vcruntime)
  13. return r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat', vcruntime

再次回到pafprocess文件夹运行

swig -python -c++ pafprocess.i && python setup.py build_ext --inplace
   
   
   
   

不报错就成功了,到这里你就可以成功使用tf-openpose了

定位到D:\tf-pose-estimation,运行

python run.py --model=mobilenet_thin --resize=432x368 --image=./images/p1.jpg
   
   
   
   

OpenPose ImportError: No module named '_pafprocess'_第6张图片

OpenPose ImportError: No module named '_pafprocess'_第7张图片

来张骚猪和吴秀波(孙狗)的斗舞

fps有点低,我电脑配置垃圾,总体来说效果还算不错

你可能感兴趣的:(深度学习,openpose,ImportError:,No,module,named,'_pafp,python)