由于Ubuntu18.04默认apt安装的pcl是1.8,在conda环境下pip安装python-pcl以后,import pcl以后会报错找不到libpcl_****.so.1.7,也就缺少pcl1.7的动态链接库,因此建议下载源码编译安装。https://github.com/strawlab/python-pclgithub.com
环境准备
name: python-pcl
channels:
- !!python/unicode
'conda-forge'
- !!python/unicode
'menpo'
- !!python/unicode
'sirokujira'
- !!python/unicode
'defaults'
dependencies:
- Cython=0.28.5
- pcl=1.8.1
- vtk=8.0.1
- matplotlib
- numpy
以上是在python-pcl源码目录下的environment.yml文件中
pcl和vtk就老老实实的按照官方给的步骤安装,建议源码编译安装,但是自己下载源码编译的时候,默认安装的库的路径是/usr/local/lib,头文件的安装路径是/usr/local/include。这需要注意。
PS.推荐使用cmake-gui安装,附上我安装vtk的时候选择安装的库
然后最重要的一步就是修改python-pcl目录下的setup.py源码
因为setup.py代码中没有针对Ubuntu18的环境,所以需要自己修改。
重点修改的部分有以下几个地方
一、VTK的版本
以下这段代码在setup.py 200行左右
elif pcl_version == '-1.8':
# PCL 1.8.0 python Version >= 3.5
# Visual Studio 2015/2017
if info.major == 3 and info.minor >= 5:
# PCL 1.8.1
boost_version = '1_64'
vtk_version = '8.0'
# pcl-1.8
# 1.8.1 use 2d required features
pcl_libs = ["2d", "common", "features", "filters", "geometry",
"io", "kdtree", "keypoints", "ml", "octree", "outofcore", "people",
"recognition", "registration", "sample_consensus", "search",
"segmentation", "stereo", "surface", "tracking", "visualization"]
pass
凡是与pcl1.8对应的vtk版本均需要改成8.0,包括后面的代码段,可以用Ctrl+F搜索一下然后进行修改。
二、引用的VTK库
这段代码在420行左右
elif vtk_version == '8.0':
# pcl_version 1.8.1
# vtklibreleases = ['vtkalglib-' + vtk_version, 'vtkChartsCore-' + vtk_version, 'vtkCommonColor-' + vtk_version, 'vtkCommonComputationalGeometry-' + vtk_version, 'vtkCommonCore-' + vtk_version, 'vtkCommonDataModel-' + vtk_version, 'vtkCommonExecutionModel-' + vtk_version, 'vtkCommonMath-' + vtk_version, 'vtkCommonMisc-' + vtk_version, 'vtkCommonSystem-' + vtk_version, 'vtkCommon