python工程中c++代码的编译

运行openpose测试代码(demo/picture_demo.py)时出现报错:

File "/xxx/pytorch_Realtime_Multi-Person_Pose_Estimation/lib/utils/paf_to_pose.py", line 7, in <module>

    from lib.pafprocess import pafprocess

ImportError: cannot import name 'pafprocess'

 

解决过程:

1)查看lib\pafprocess中的文件,发现是c++代码,需要先对其进行编译。

2)编译c++代码,在终端执行:

cd lib/pafprocess

sh make.sh

报错:

 

需要安装swig:【https://blog.csdn.net/shanglianlm/article/details/88797529】

a)下载pcre-8.41:https://blog.csdn.net/shanglianlm/article/details/88797529

下载swig:https://sourceforge.net/projects/swig/files/swig/

b)安装pcre

tar -zxvf pcre-8.41.tar.gz

chmod -R 777 pcre-8.41

cd pcre-8.41/

./configure

make

sudo make install

c)安装swig到默认目录

tar -xzvf swig-4.0.1.tar.gz

cd swig-4.0.1

./configure

make 

sudo make install

d)查看swig版本

swig -version

报错:swig: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

执行:ldd $(which swig)

手动添加链接:ln -s /usr/local/lib/libpcre.so.1 /lib

完毕后再次运行:swig -version

3)再次在终端执行:

cd lib/pafprocess

sh make.sh

即可编译成功,发现lib\pafprocess路径下多出了pafprocess.py、_pafprocess.cpython-36m-x86_64-linux-gnu.so等文件。

4)运行demo/picture_demo.py

报错:

File "/xxx/BehaviorDetection/pytorch_Realtime_Multi-Person_Pose_Estimation/lib/pafprocess/pafprocess.py", line 13, in <module>

    from . import _pafprocess

ImportError: cannot import name '_pafprocess'

解决:将/xxx/BehaviorDetection/pytorch_Realtime_Multi-Person_Pose_Estimation/lib/pafprocess/目录下的_pafprocess.cpython-36m-x86_64-linux-gnu.so名字改为:_pafprocess.so即可成功。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值