Skip to content
This repository has been archived by the owner on Dec 30, 2023. It is now read-only.

ImportError: libpcl_keypoints.so.1.7: cannot open shared object file: No such file or directory #317

Open
aj96 opened this issue Aug 29, 2019 · 22 comments

Comments

@aj96
Copy link

aj96 commented Aug 29, 2019

Getting the error message as shown in the title every time I try to import pcl

Your Environment

  • Operating System and version: Ubuntu 18.04
  • Compiler: g++ (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  • PCL Version: 1.8
  • Cython Version: 0.29.12

Ran

sudo apt-get install libpcl-dev -y
pip install python-pcl

But every time I try to import pcl, I get the error shown above. It seems like running apt-get install libpcl-dev installed /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so. Why is it looking for libpcl_keypoints.so.1.7?

@xiaoFine
Copy link

xiaoFine commented Sep 12, 2019

Same error.

==Update===
I switch to Ubuntu 16.04 LTS and no more module import error.

==Update 2===
I tried Ubuntu 18.04 again and it works now.

Check version

It turns out that you need to apt install libpcl-dev of version 1.7.x . But the default version of libpcl-dev on Ubuntu 18.04 is 1.8.1+dfsg1-2ubuntu2.18.04.1 ( you can run apt-cache policy libpcl-dev to check it out).

So I run apt-cache madison libpcl-dev to check out the candidate version of libpcl-dev and I find there is only one 1.7 version is available.

P.S. Modify you apt source since libpcl-dev1.7 is only available for xenial (16.04LTS) version and default source on Ubuntu 18.04 is bionic (18.04LTS).

Installation

Then I run sudo apt-get install libpcl-dev=1.7.2-14build1 but get some dependency problems. So I install the dependencies as demanded and finally it works.

P.S. some dependency package dependent on children dependencies and just keep patient.

Validation

run

cd \usr\lib 
find | grep keypoints

and you'll get

./x86_64-linux-gnu/libpcl_keypoints.so.1.7
./x86_64-linux-gnu/libpcl_keypoints.so.1.7.2

as supposed.

@anshulpaigwar
Copy link

apt-cache madison libpcl-dev

@xiaoFine this command gives me following output:

libpcl-dev | 1.8.1+dfsg1-2ubuntu2.18.04.1 | http://fr.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages
libpcl-dev | 1.8.1+dfsg1-2ubuntu2 | http://fr.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages

There is no available 1.7 version of libpcl-dev for ubuntu 18.04. Could you help me how did you manged to install 1.7 version ??

@xiaoFine
Copy link

xiaoFine commented Dec 27, 2019

@anshulpaigwar

For me i just add xenial apt source by editing /etc/apt/sources.list ( I use Chinese-apt-source to accelerate and you can change to other xenial sources):

## {default source address of bionic here} ##

## Add xenial source here
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

Then update it by runnnig:

sudo apt update 
apt-cache madison libpcl-dev

you are supposed to get following outputs in you Ubuntu 18.04 LTS

libpcl-dev | 1.8.1+dfsg1-2ubuntu2.18.04.1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-updates/universe amd64 Packages
libpcl-dev | 1.8.1+dfsg1-2ubuntu2 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic/universe amd64 Packages
libpcl-dev | 1.7.2-14build1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial/universe amd64 Packages

@IsmaelElHouas
Copy link

Some of your source address are not being recognised, and when I do apt-cache madison libpcl-dev I don't get the 1.7 version.

How can I solve it?

Thanks:)

@IeiuniumLux
Copy link

IeiuniumLux commented Jan 27, 2020

Hello @Sirokujira,

Installing v0.3.0rc1 from source works around this issue with libpcl_keypoints.so.1.7 on Ubuntu 18.04. However, would you mind building a new release (e.g. v0.3.0a2 or v0.3.0b1) using a newer version of the libpcl_keypoints.so (e.g. libpcl_keypoints.so.1.8) and release it into PyPI so it can be installed on Ubuntu 18.04 by just running pip install python-pcl. TIA!

tar zxf python-pcl-0.3.0rc1.tar.gz
cd python-pcl-0.3.0rc1
python setup.py install

@xiaoFine
Copy link

Some of your source address are not being recognised, and when I do apt-cache madison libpcl-dev I don't get the 1.7 version.

How can I solve it?

Thanks:)

@IsmaelElHouas Sorry for delay. I found some official sources and you can have a try.

https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

@Dhvani-Katkoria
Copy link

Dhvani-Katkoria commented Feb 26, 2020

sudo apt-get install libpcl-dev=1.7.2-14build1

@xiaoFine
I faced the same error and tried running above command as suggested and with that while installing child dependencies libpcl_keypoints.so.1.7 error is gone.
But while installing other dependencies such as libpcl_surface.so.1.7 that came across while running above command, a conflict is generated for libopenmpi version between bionic(18.04) and xenial(16.04) due two different dependencies of vtk6.2 for libpcl_surface.so.1.7 depends on openmpi version 1.10 while libboost-all-dev depends on 2.1 version.

Because of it I am unable to install libpcl-dev=1.7.2-14build1 library completely on ubuntu18.04.
Could you help me how did you manage with that part?

Thanks

@xiaoFine
Copy link

xiaoFine commented Mar 6, 2020

@Dhvani-Katkoria

ref this:
https://github.com/strawlab/python-pcl/issues/158#issuecomment-404131363

@Abbsalehi
Copy link

Abbsalehi commented May 13, 2020

Thank you for your answers.

I tried so much to solve this problem, and surfed all answers on the web. One drawback among the answers is this line code: "sudo apt-get install libpcl-dev -y". If you run this command, it will install libpcl-dev with higher version which will be conflicted to that libpcl-dev 1.7 you will install later. So please do not do anything and listen to me to solve the problem. here are some steps to hit the problem:

Step 1: find Ubuntu 16 source.list and add one by one of its repositories to your Ubuntu(for example version 20). you can find it in this link: https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

Step 2: run "sudo apt update", now libpcl-dev 1.7 has been installed successfully. you can run this command to see :"apt-cache policy libpcl-dev"

Step 3: run: "python", then "import pcl", you will receive such this error: ImportError: libpcl_keypoints.so.1.7, ok do not worry, copy "libpcl_keypoints.so.1.7" and go to this website and paste within its search box: https://debian.pkgs.org/8/debian-main-amd64, there you will see such this: "sudo apt-get install libpcl-keypoints1.7", run it on the terminal.

Step 4: type "python" on the terminal, then " import pcl ". you will see another error for example: "libpcl-outofcore1.7", again search it that website and do as previous step.

Step 5: repeat step 3 and 4 till you can import pcl successfully.

I did and worked for me :D

Moreover, I repeated the process to install PCL and also prepared these steps to resolve the problem easily. You can follow these steps to install PCL successfully.

Step1: Add Ubuntu 16 source list

Step2: sudo apt-get update

step3: pip install python-pcl

step4: sudo apt-get install libpcl-keypoints1.7

step5: sudo apt-get install libpcl-outofcore1.7

step6: sudo apt-get install libpcl-people1.7

step7: sudo apt-get install libpcl-recognition1.7

step8: sudo apt-get install libpcl-registration1.7

step9: sudo apt-get install libpcl-segmentation1.7

step10: sudo apt-get install libpcl-surface1.7

Now, if you get error "libpng12-0", do this:

sudo add-apt-repository ppa:linuxuprising/libpng12

sudo apt update

sudo apt-get install libpng12-0

Step11: sudo apt-get install libpcl-tracking1.7

Step12: sudo apt-get install libflann1.8
Step13: sudo apt-get install libpcl-visualization1.7

Step14: python

import pcl

Congradulation : pcl successfully is imported

@szx0112
Copy link

szx0112 commented May 15, 2020

Hi @Abb1989 I am new to Ubuntu. I tried your method and it works! Thanks for sharing. However, changing pcl version from 1.8 to 1.7 will cause the dependencies problems of other programs on Ubuntu 18.04. It is possible for us to only install it locally?

@Abbsalehi
Copy link

Hi @Abb1989 I am new to Ubuntu. I tried your method and it works! Thanks for sharing. However, changing pcl version from 1.8 to 1.7 will cause the dependencies problems of other programs on Ubuntu 18.04. It is possible for us to only install it locally?

I think you can create an environment by conda command. I did not do such this thing. Using conda command would be better. Seek more about conda command, i think you can do it.

@szx0112
Copy link

szx0112 commented May 17, 2020

@Abb1989 Thanks for the reply. I managed to handle this problem by manually linking the downloaded pkgs to a local folder.

@Stigmaru
Copy link

Thank you for your answers.

I tried so much to solve this problem, and surfed all answers on the web. One drawback among the answers is this line code: "sudo apt-get install libpcl-dev -y". If you run this command, it will install libpcl-dev with higher version which will be conflicted to that libpcl-dev 1.7 you will install later. So please do not anything and listen to me to solve the problem. here are some steps to hit the problem:

Step 1: find Ubuntu 16 source.list and add one by one of its repositories to your Ubuntu(for example version 2o). you can find it in this link: https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

Step 2: run "sudo apt update", now libpcl-dev 1.7 has been installed successfully. you can run this command to see :"apt-cache policy libpcl-dev"

Step 3: run: "python", then "import pcl", you will receive such this error: ImportError: libpcl_keypoints.so.1.7, ok do not worry, copy "libpcl_keypoints.so.1.7" and go to this website and paste within its search box: https://debian.pkgs.org/8/debian-main-amd64, there you will see such this: "sudo apt-get install libpcl-keypoints1.7", run it on the terminal.

Step 4: type "python" on the terminal, then " import pcl ". you will see another error for example: "libpcl-outofcore1.7", again search it that website and do as previous step.

Step 5: repeat step 3 and 4 till you can import pcl successfully.

I did and worked for me :D

Moreover, I repeated the process to install PCL and also prepared these steps to resolve the problem easily. You can follow these steps to install PCL successfully.

Step1: Add Ubuntu 16 source list

Step2: sudo apt-get update

step3: pip install python-pcl

step4: sudo apt-get install libpcl-keypoints1.7

step5: sudo apt-get install libpcl-outofcore1.7

step6: sudo apt-get install libpcl-people1.7

step7: sudo apt-get install libpcl-recognition1.7

step8: sudo apt-get install libpcl-registration1.7

step9: sudo apt-get install libpcl-segmentation1.7

step10: sudo apt-get install libpcl-surface1.7

Now, if you get error "libpng12-0", do this:

sudo add-apt-repository ppa:linuxuprising/libpng12

sudo apt update

sudo apt-get install libpng12-0

Step11: sudo apt-get install libpcl-tracking1.7

Step12: sudo apt-get install libflann1.8
Step13: sudo apt-get install libpcl-visualization1.7

Step14: python

import pcl

Congradulation : pcl successfully is imported

@Abb1989 How do you add one by one of the Ubuntu 16 source list repositories to my own source list? Do I just copy the entire (https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1) into my system's source.list file???

@Abbsalehi
Copy link

Abbsalehi commented May 24, 2020

Thank you for your answers.

I tried so much to solve this problem, and surfed all answers on the web. One drawback among the answers is this line code: "sudo apt-get install libpcl-dev -y". If you run this command, it will install libpcl-dev with higher version which will be conflicted to that libpcl-dev 1.7 you will install later. So please do not anything and listen to me to solve the problem. here are some steps to hit the problem:

Step 1: find Ubuntu 16 source.list and add one by one of its repositories to your Ubuntu(for example version 2o). you can find it in this link: https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

Step 2: run "sudo apt update", now libpcl-dev 1.7 has been installed successfully. you can run this command to see :"apt-cache policy libpcl-dev"

Step 3: run: "python", then "import pcl", you will receive such this error: ImportError: libpcl_keypoints.so.1.7, ok do not worry, copy "libpcl_keypoints.so.1.7" and go to this website and paste within its search box: https://debian.pkgs.org/8/debian-main-amd64, there you will see such this: "sudo apt-get install libpcl-keypoints1.7", run it on the terminal.

Step 4: type "python" on the terminal, then " import pcl ". you will see another error for example: "libpcl-outofcore1.7", again search it that website and do as previous step.

Step 5: repeat step 3 and 4 till you can import pcl successfully.

I did and worked for me :D

Moreover, I repeated the process to install PCL and also prepared these steps to resolve the problem easily. You can follow these steps to install PCL successfully.

Step1: Add Ubuntu 16 source list

Step2: sudo apt-get update

step3: pip install python-pcl

step4: sudo apt-get install libpcl-keypoints1.7

step5: sudo apt-get install libpcl-outofcore1.7

step6: sudo apt-get install libpcl-people1.7

step7: sudo apt-get install libpcl-recognition1.7

step8: sudo apt-get install libpcl-registration1.7

step9: sudo apt-get install libpcl-segmentation1.7

step10: sudo apt-get install libpcl-surface1.7

Now, if you get error "libpng12-0", do this:

sudo add-apt-repository ppa:linuxuprising/libpng12

sudo apt update

sudo apt-get install libpng12-0

Step11: sudo apt-get install libpcl-tracking1.7

Step12: sudo apt-get install libflann1.8

Step13: sudo apt-get install libpcl-visualization1.7

Step14: python

import pcl

Congradulation : pcl successfully is imported

@Abb1989 How do you add one by one of the Ubuntu 16 source list repositories to my own source list? Do I just copy the entire (https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1) into my system's source.list file???

Hi dear, read this article:
https://help.ubuntu.com/stable/ubuntu-help/addremove-sources.html

@aravindsairam
Copy link

Works for both python2 and python3 (mention python3 if needed)

  • $ sudo pip install cython==0.25.2
  • clone this repo https://github.com/udacity/RoboND-Perception-Exercises
  • $ cd RoboND-Perception-Exercises/python-pcl
  • $ python setup.py build -i
  • $ sudo python setup.py install
  • $ sudo apt-get install pcl-tools
  • export PYTHONPATH=$PYTHONPATH:/usr/local/lib (This is my python path)

If importing pcl outside this directory still give the same error, then uninstall the existing pcl.

  • pip uninstall pcl

@bladesaber
Copy link

@Abb1989
oh I meet a new problem in ubuntu18.0.4 when I execute sudo apt-get install libpcl-surface1.7.
it throw a error:
libpcl-surface1.7 : Depends: libvtk6.2 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

can some one help?

@Abbsalehi
Copy link

Abbsalehi commented Oct 10, 2020

@Abb1989

oh I meet a new problem in ubuntu18.0.4 when I execute sudo apt-get install libpcl-surface1.7.

it throw a error:

libpcl-surface1.7 : Depends: libvtk6.2 but it is not going to be installed

E: Unable to correct problems, you have held broken packages.

can some one help?

Hi dear,

You can do these steps:
Step 1:
"sudo apt-get install libvtk6.2"

Step 2:
Install manually: download vtk6 from the link below, then install its deb file.

http://archive.ubuntu.com/ubuntu/pool/universe/v/vtk6/libvtk6.2_6.2.0+dfsg1-10build1_i386.deb

It may need its dependencies when you installed it manually. The best way is that you continue step2 by installing its dependencies as well. Sorry for my bad English writing!☹️
However, if the steps did not work properly, please let me know! We can resolve the problem!

@ZhengdiYu
Copy link

@Abb1989
oh I meet a new problem in ubuntu18.0.4 when I execute sudo apt-get install libpcl-surface1.7.
it throw a error:
libpcl-surface1.7 : Depends: libvtk6.2 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
can some one help?

Hi dear,

You can do these steps:
Step 1:
"sudo apt-get install libvtk6.2"

Step 2:
Install manually: download vtk6 from the link below, then install its deb file.

http://archive.ubuntu.com/ubuntu/pool/universe/v/vtk6/libvtk6.2_6.2.0+dfsg1-10build1_i386.deb

It may need its dependencies when you installed it manually. The best way is that you continue step2 by installing its dependencies as well. Sorry for my bad English writing!☹️
However, if the steps did not work properly, please let me know! We can resolve the problem!

Hi, I got an error : ImportError: libpcl_keypoints.so.1.8: cannot open shared object file: No such file or directory
But I actually see libpcl_keypoints.so.1.8.0 in /usr/local/lib. What can I do to solve this?

Many thanks!

@Abbsalehi
Copy link

@Abb1989

oh I meet a new problem in ubuntu18.0.4 when I execute sudo apt-get install libpcl-surface1.7.

it throw a error:

libpcl-surface1.7 : Depends: libvtk6.2 but it is not going to be installed

E: Unable to correct problems, you have held broken packages.

can some one help?

Hi dear,

You can do these steps:

Step 1:

"sudo apt-get install libvtk6.2"

Step 2:

Install manually: download vtk6 from the link below, then install its deb file.

http://archive.ubuntu.com/ubuntu/pool/universe/v/vtk6/libvtk6.2_6.2.0+dfsg1-10build1_i386.deb

It may need its dependencies when you installed it manually. The best way is that you continue step2 by installing its dependencies as well. Sorry for my bad English writing!☹️

However, if the steps did not work properly, please let me know! We can resolve the problem!

Hi, I got an error : ImportError: libpcl_keypoints.so.1.8: cannot open shared object file: No such file or directory

But I actually see libpcl_keypoints.so.1.8.0 in /usr/local/lib. What can I do to solve this?

Many thanks!

You just install libvtk manually!! Sometimes this is the only way I think!

@wanguangxi
Copy link

Please see https://github.com/barrygxwan/Python-PCL-Ubuntu18.04/blob/main/README.md

@dkarunakaran
Copy link

@ArghyaChatterjee
Copy link

Hi, I need it for Python 3 (Python-3.6.9 to be specific). The upper link works for python 2 not for python3.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests