strawlab / python-pcl

Python bindings to the pointcloud library (pcl)
http://strawlab.github.com/python-pcl/
Other
2k stars 700 forks source link

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

Open aj96 opened 5 years ago

aj96 commented 5 years ago

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

Your Environment

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

@Dhvani-Katkoria

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

Abbsalehi commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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

Stigmaru commented 4 years ago

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 commented 4 years ago

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 commented 3 years ago

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

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

bladesaber commented 3 years ago

@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 commented 3 years ago

@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 commented 3 years ago

@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 commented 3 years ago

@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 commented 3 years ago

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

dkarunakaran commented 3 years ago

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

Nice!

ArghyaChatterjee commented 3 years ago

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