Open Theopetitjean opened 3 years ago
Ok here is a update of my issue :
after running python3 setup.py build_ext
The code now build apparently well. It create Build File and also the _ext file inside the pointnet2_utils, with a form like : _ext.cpython-36m-x84_64-linux-gnu.so
But still I encounter 2 kind of error such as :
Error 1 : ( with the build exit made with pytorch torch==1.0.1.post2 / torchvision==0.2.0)
It keep returning me mistake such as :
from lib.pointnet2_utils import _ext ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory
Error 2 : (build ext with torch 1.4)
Most of the time fail to import PCL, but when it does it return such kind of mistake :
ImportError: /home/tpetitjean/PhD_Thesis/T1Pvn3D/PVN3D/pvn3d/lib/pointnet2_utils/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN3c106Device8validateEv
What ever i do to try to fix that i always reach this specific point.
The only warning i got while doing the build is the folowing :
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
but still it finish by returning message like :
creating build/lib.linux-x86_64-3.6 creating build/lib.linux-x86_64-3.6/pointnet2_utils
So it seems to work as wanted
Do you guys have any idea how to fix this ? or maybe smtg i am doing wrong ?
For error1. It seems that you don't have the libcudart.so.10.0, you can download it. For error2: torch 1.4 is not suitable for this task, you can use torch 1.0.1 as a substitute.
For error1. It seems that you don't have the libcudart.so.10.0, you can download it. For error2: torch 1.4 is not suitable for this task, you can use torch 1.0.1 as a substitute.
Hello! Tanks for the suggestion, it can lookstrange but, I fixed the both issue in a kinda weird way. So here and update of what I did (it can be useful for someone one day).
For the first err, it appears that to install the PointNet properly I had to first run the installation of it (require.txt) in a suitable version of torch (1.4), then to build the code PVN3D by using back the 1.0.1 torch re-installed by :
pip -r req.txt
Then for error 2 (which is basically the following of the previous steps) it appear that activating the cuda env outside of the file create a sort of localization issue for the file. So I simply Run:
bash
Then cd /path of the PVN3D then conda activate my env and the problem didn't show ever again. Those first to problem come from the fact that I don't run everything on my personal laptop but on a external working server. (I suppose, like I said, I fix it, but it remain kinda obscure to me.).
Then I encountered a brand-new problem linked to PCL. Since I saw online that the problem was evilly reported, here an update of what I've done to fix it. On the server I actually have Unbuntu 18.04 installed. Running the classical command of:
sudo apt-get install libpcl-dev -y
pip install python-pcl
Will probably return a Error such as: /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so.
This issue come from the fact that the command ran before will automatically instal the higher version of libpcl and not the 1.7 wich is an old one.
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 (you can run apt-cache policy libpcl-dev
to check it out.).
In order to fix that issue you will have to first include inside the source of unbuntu the xenial link for instalation (by default it will be Bionic and we want to add the xenial part.). In my cases I just added those two lines:
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
Then we have to run sudo apt update
. After that you can run apt-cache madison libpcl-dev
to check the available version of libpcl-dev. it should return smtg like :
apt-cache madison libpcl-dev
libpcl-dev | 1.8.1+dfsg1-2ubuntu2.18.04.1 | http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages
libpcl-dev | 1.8.1+dfsg1-2ubuntu2 | http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
libpcl-dev | 1.7.2-14build1 | http://dk.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
If you don't see any 1.7.2 lib available it simply mean that it still misses some xenial source, here is a more complete source list for xenial https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1 just add it to your source file and try again.
Then you can run in order to install the 1.7 lib. You will encounter some dependency problems, be patient and fix them on by one. Once the 1.7 lib is installed you will be able to install all the missing part from the 1.7 such as keypoints1.7 or surface1.7.
To do so you just has to check whats part is missing when you try to. If libpcl-keypoints1.7 is missing just run, then try to import pcl again, and install package by package according to the error printed. (here some example) :
sudo apt-get install libpcl-outofcore1.7
apt-get install libpcl-segmentation1.7
apt-get install libpcl-surface1.7
According to this topic : it is possible to face some more issue after these steps. Please refer to this and try the proposed fix.
After all of this you should be able to correctly install PCL on the 18.04 unbuntu and of course using this amaizing PVN3D work !
I saw your words and i think the main problem is the installation of the PCL on Ubuntu 18.04. I install it in two computer, ubuntu 16.04 and 20.04, IN 16.04, it is more easier, It seems that through sudo apt-get install libpcl-all can install . For 18.04 and higher, must through the git method
sudo apt install libpcl-dev libvtk6-dev
clone fork with fix for Ubuntu 18.04
git clone https://github.com/Tuebel/python-pcl
cd python-pcl
python3 setup.py install
`
pcl 1.7 is not suitable for 18.04, hope this will help you!
Hello,
First of all, thank you for your work.
In the context of a concrete application for my thesis subject I would like to test your PVN3D code. However, I encounter a problem that I can't correct. Indeed, when using _demolinemod.sh I encounter the following problem :
ImportError: cannot import name '_ext' from 'lib.pointnet2_utils' (/home/tpetitjean/PhD_Thesis/T1Pvn3D/PVN3D/pvn3d/lib/pointnet2_utils/__init__.py)
I'm sure I installed PointNet properly, and built it as indicated. I can see PointNet installed in my Conda env and using the _python3 setup.py command buildext has created a build file inside the PointNet tree.
Do you have any idea what I can do to correct this problem? Is there a file to move by hand after the build? Or is it the build that did not work as expected?
I thank you in advance for your clarification and wish you a very pleasant continuation. Sincerely, Theo
I have the same problem, did you manage to solve this issue ?
I have the same problem, did you manage to solve this issue ?
Hi, yes i did, some point are explained here, if you can't fix it with my previous answer, be sure to notify me, and i'll do my possible to make the solution bit more clear in order to help there ;)
I have the same problem, did you manage to solve this issue ?
Hi, yes i did, some point are explained here, if you can't fix it with my previous answer, be sure to notify me, and i'll do my possible to make the solution bit more clear in order to help there ;)
I solved this problem in a strange way, I installed the tutorial installation, and then Cannot import name'_ext' appears; the solution: Change from. Import _ext to:
try: from lib.pointnet2_utils import _ext except ImportError: from torch.utils.cpp_extension import load import glob import os.path as osp import os
Hello,
First of all, thank you for your work.
In the context of a concrete application for my thesis subject I would like to test your PVN3D code. However, I encounter a problem that I can't correct. Indeed, when using demo_linemod.sh I encounter the following problem :
I'm sure I installed PointNet properly, and built it as indicated. I can see PointNet installed in my Conda env and using the python3 setup.py command build_ext has created a build file inside the PointNet tree.
Do you have any idea what I can do to correct this problem? Is there a file to move by hand after the build? Or is it the build that did not work as expected?
I thank you in advance for your clarification and wish you a very pleasant continuation. Sincerely, Theo