Closed mungewell closed 5 years ago
The file "libopenvr_api_64.so" should be installed with pyopenvr, in the same folder as init.py. The openvr project provides only a 64-bit linux library; no 32-bit version at the moment. https://github.com/ValveSoftware/openvr/tree/master/bin PyOpenVR uses its own copy of the openvr api shared library, so it would match the exact version of the API wrapped by the python binding.
I wonder whether setting LD_LIBRARY_PATH could help sidestep this problem.
Did you install pyopenvr via "pip install pyopenvr"?
Are you running 64-bit python?
Sorry I have not been testing pyopenvr on Linux. Your help in sorting out these issues is appreciated.
I'm interested in getting this to work as well. Attempting to create a ros node based on this library.
Am i understanding it correctly that i would need to make a copy of the libopenvr_api_64.so
file in the same folder as this library?
willing to try.
Please advise.
@eric-schleicher Are you trying to use pyopenvr on a 32-bit linux system? That's what this issue is about.
If you have somehow obtained a 32-bit openvr shared library, you could experiment with naming it libopenvr_api_32.so, and placing it in the pyopenvr folder. Unfortunately pyopenvr has not been well tested even on 64-bit linux systems. But you might find some enlightenment in issue #5 https://github.com/cmbruns/pyopenvr/issues/5#issuecomment-245012925
Have you at least got regular C++ openvr code working on your linux machine, and are now trying to get pyopenvr working?
No sorry this will be x64. I've gotten steamVR to work (barely; only on fresh boot). at the moment it all seems a bit brittle.
I'm weighing writing the ros node as a receiver from a windows system (that would stream the tracked object telemetry over), or attempting to run steamVR natively on (same as ros) linux (brittle-robot?) .
ok, i did end up running into this exact despite being on x64 ubuntu 16.04LTS and useing python3.5 with pip3 to perform the install.
I was able to get it to run on windows; and i was just reproducing the logical steps on linux, which is my target platform.
Now following the comment on issue #5. will update if i find a solution
I ran into an issue loading the library as well. The problem is that the mechanism used to load the library does not look at PATH, but rather looks at LD_LIBRARY_PATH. However, since that particular variable has to be set before python is invoked, there's not way (that I can tell) to set it in the script.
So rather than trying to set a PATH, I just changed the script to use an absolute path when on Linux.
Hi @claytmcneil, I'm having a trouble including the PATH (I described the detail here https://github.com/cmbruns/pyopenvr/issues/5#issuecomment-310237824). Could you share the process you took in detail and the potential solution for this issue?
@kazoo-kmt Rather then set the PATH, I specified the full path of the lib in the open. Under openvr/init.py, I modified last line of the snippet below:
# Add current directory to PATH, so we can load the DLL from right here. os.environ['PATH'] += os.pathsep + os.path.dirname(__file__) _openvr = cdll.LoadLibrary(os.path.join("/absolute/path/to/library", _openvr_lib_name))
Fixed by fix for #36
SteamVR can be installed under the Linux client, looks like pyopenvr expects library to be 64bit... when it isn't (at least on my machine).