uoip / pangolin

Python binding of 3D visualization library Pangolin
MIT License
292 stars 90 forks source link

Error importing. Libpango*.so undefined symbol. PyPangolin works #11

Closed clmnin closed 5 years ago

clmnin commented 5 years ago

Compiled and build the package but I'm getting this error

Python 3.5.6 |Anaconda, Inc.| (default, Aug 26 2018, 21:41:56) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pangolin
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0: undefined symbol: hb_font_funcs_set_variation_glyph_func

Since this was failing I tried compiling and building the original C++ version link and it was successfully build. I'm also able to import pypangolin

But Steven's version doesn't have DrawPoints, DrawLines, DrawCameras, DrawBoxes and so I would love it if my problem could be solved. Is the an issue with my libpango? Should I install any other package before I build?

clmnin commented 5 years ago

During the build I passed -DPYTHON_EXECUTABLE to point to the python env. And so the PythonInterp has the right value but the PythonLibs does not.

-- Found PythonInterp: /home/clmno/anaconda3/envs/slam/bin/python (found version "3.5.6") 
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.6m.so

As you can see my PythonLibs has a value which is for python3.6. How do I pass in the flag for PythonLibs too?

cmake .. -DPYTHON_EXECUTABLE="/home/clmno/anaconda3/envs/slam/bin/python"
plasticuproject commented 5 years ago

Do you have any OpenGL libraries installed, like libglew-dev? It is in the dependencies list. Also I would recommend installing libeigen3-dev as well. There is also an unresolved typo in the setup.py script, so you will have to edit it to resemble the scripts in the pull requests.

plasticuproject commented 5 years ago

If you are looking for help from the maintainer, this repo has long been abandoned

clmnin commented 5 years ago

Yes, I've installed libglew-dev and libeigen3-dev. Also modified the setup.py.

Oh, it has been abandoned? God! Should I try my luck with the original C++ repo?

Do you know how I can pass a flag to let cmake know where my pythonlibs must be?

plasticuproject commented 5 years ago

Depends on what you need it for I guess. Or fork and maintain your own version. The pull requests for the setup.py, as simple as a fix as it is, is like 9 months old, so I'd consider it a dead project.

clmnin commented 5 years ago

Alright, thanks. I'll close this Issue.

plasticuproject commented 5 years ago

Regarding the cmake flag, sorry, not off the top of my head.

clmnin commented 5 years ago

OMG! This repo wasn't even a pull from the original one and so I currently have no clue where the changes are!(No git history) This was so cruel of uopi to do this.

plasticuproject commented 5 years ago

I suspected something like that, just didn't look into it. I found my way here by cloning someone else's project, ha.

plasticuproject commented 5 years ago

If it helps, I haven't tested it yet, but I forked stevenlovegrove's Pangolin, and applied uoip's bindings to it, so now you can see the change history. Hope that works, and I hope that helps you.

EWouters commented 5 years ago

If it helps, I haven't tested it yet, but I forked stevenlovegrove's Pangolin, and applied uoip's bindings to it, so now you can see the change history. Hope that works, and I hope that helps you.

Sounds like stevenlovegrove would be interested in that! #8