davidstutz / mesh-fusion

Python tool for obtaining watertight meshes using TSDF fusion.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OSError: /home/mona/mesh-fusion/librender/pyrender.so: cannot open shared object file: No such file or directory

monacv opened this issue · comments

I caught a typo, python is missing from step two of Usage:

Screenshot from 2021-02-02 19-05-28

Also, how should I fix this error?

(tsdf) mona@goku:~/mesh-fusion$ python 2_fusion.py --mode=render --in_dir=examples/1_scaled/ --depth_dir=examples/2_depth/ --out_dir=examples/2_watertight/
Traceback (most recent call last):
  File "2_fusion.py", line 10, in <module>
    import librender
  File "/home/mona/mesh-fusion/librender/__init__.py", line 5, in <module>
    ctypes.cdll.LoadLibrary(os.path.join(pyrender_dir, 'pyrender.so'))
  File "/usr/lib/python3.8/ctypes/__init__.py", line 451, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.8/ctypes/__init__.py", line 373, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /home/mona/mesh-fusion/librender/pyrender.so: cannot open shared object file: No such file or directory

This solution didn't apply to me #4

(tsdf) mona@goku:~/mesh-fusion$ python
Python 3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cython
>>> cython.__version__
'0.29.21'
$ lsb_release -a
LSB Version:	core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.2 LTS
Release:	20.04
Codename:	focal

Ok found the solution:
in librender directory the command python setup.py ... created a file pyrender.cpython-36m-x86_64-linux-gnu.so.
I copied this file into root directory mesh-fusion and renamed it into pyrender.so
In librender.__init__.py i changed line 5 into
ctypes.cdll.LoadLibrary(os.path.join(pyrender_dir, '../pyrender.so'))
Similarly, in libfusioncpu the file cyfusion.cpython-36m-x86_64-linux-gnu.so was generated. I copied it into root directory mesh-fusion and renamed it into cyfusion.so
Then code works.

Ok found the solution:
in librender directory the command python setup.py ... created a file pyrender.cpython-36m-x86_64-linux-gnu.so.
I copied this file into root directory mesh-fusion and renamed it into pyrender.so
In librender.__init__.py i changed line 5 into
ctypes.cdll.LoadLibrary(os.path.join(pyrender_dir, '../pyrender.so'))
Similarly, in libfusioncpu the file cyfusion.cpython-36m-x86_64-linux-gnu.so was generated. I copied it into root directory mesh-fusion and renamed it into cyfusion.so
Then code works.

This works for me. Thanx.

Sorry for not being responsive and thanks @christinazavou for fixing the issue. Will include it in the README.

Ok found the solution: in librender directory the command python setup.py ... created a file pyrender.cpython-36m-x86_64-linux-gnu.so. I copied this file into root directory mesh-fusion and renamed it into pyrender.so In librender.__init__.py i changed line 5 into ctypes.cdll.LoadLibrary(os.path.join(pyrender_dir, '../pyrender.so')) Similarly, in libfusioncpu the file cyfusion.cpython-36m-x86_64-linux-gnu.so was generated. I copied it into root directory mesh-fusion and renamed it into cyfusion.so Then code works.

python setup.py ...created a filepyrender.cpython-36m-x86_64-linux-gnu.so`. How does this work?please