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即可成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章