Ubuntu18 在anaconda python3.8环境下安装python-pcl
前言
github上python-pcl仓库中声明的linux系统环境要求是pcl<=1.9,python=3.5.x,而python3.6可以通过pip install python-pcl直接安装。
这里提供一个从源码编译python-pcl适配python3.8的方法。
apt安装pcl组件
由于我的电脑从源码编译了pcl-1.11,超出了python-pcl的pcl版本要求,因此可以通过apt安装pcl-1.8版本来适配python-pcl:
sudo apt update
sudo apt install libpcl-dev pcl-tools
这里有个问题,就是apt安装的pcl版本是pcl-1.8,而pypi上现成的python-pcl包使用的是pcl-1.7的库,如果使用pip安装python-pcl,因此导入pcl
包时会报:
ImportError: libpcl_keypoints.so.1.7: cannot open shared object file: No such file or directory
建议还是通过自己编译python-pcl的源码来避免上面的问题。
源码编译python-pcl
pypi上压根没有python3.8对应的python-pcl包,因此必须自己编译源码。
git clone https://github.com/strawlab/python-pcl.git
由于我们的pcl版本是1.8,vtk版本为6.3,因此需要修改源码setup.py第726行:
vtk_version = '6.3'
另外,要把第752行中vtk6.3版本没有的依赖库+版本号删掉,包括:
'vtkexpat' + vtk_version
'vtkfreetype'+ vtk_version
'vtkgl2ps'+ vtk_version
'vtkhdf5'+ vtk_version
'vtkhdf5_hl'+ vtk_version
'vtkjpeg'+ vtk_version
'vtkjsoncpp'+ vtk_version
'vtklibxml2'+ vtk_version
'vtkNetCDF'+ vtk_version
'vtkNetCDF_cxx'+ vtk_version
'vtkoggtheora'+ vtk_version
'vtkpng'+ vtk_version
'vtkproj4'+ vtk_version
'vtksqlite'+ vtk_version
'vtktiff'+ vtk_version
'vtkzlib'+ vtk_version
然后就可以编译了:
python setup.py build_ext -i
python setup.py install