Dear all,

Rcently found myself with the following problem while trying to import and use pyindi-client on a new machine:

Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/PyIndi.py", line 18, in swig_import_helper
return importlib.import_module(mname)
File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 657, in _load_unlocked
File "<frozen importlib._bootstrap>", line 556, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 1101, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: /usr/lib/python3.8/site-packages/_PyIndi.cpython-38-arm-linux-gnueabihf.so: undefined symbol: _ZN4INDI8Property7getTextEv

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "./apps/prototyping/Observatory/IndiScopeController.py", line 8, in <module>
from helper.IndiClient import IndiClient
File "/home/rock/projects/RemoteObservatory/helper/IndiClient.py", line 7, in <module>
import PyIndi
File "/usr/lib/python3.8/site-packages/PyIndi.py", line 21, in <module>
_PyIndi = swig_import_helper()
File "/usr/lib/python3.8/site-packages/PyIndi.py", line 20, in swig_import_helper
return importlib.import_module('_PyIndi')
File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: /usr/lib/python3.8/site-packages/_PyIndi.cpython-38-arm-linux-gnueabihf.so: undefined symbol: _ZN4INDI8Property7getTextEv



I have pip --force-reinstall the package of course. But I found something quite weird I did not managed to understand. Locally I had multiple version of the libindi driver:

rock@localhost:~/projects/RemoteObservatory$ nm -D /usr/local/lib/libindidriver.so.1.8.4 | grep _ZN4INDI8Property7getTextEv
0004308c T _ZN4INDI8Property7getTextEv
rock@localhost:~/projects/RemoteObservatory$ nm -D /usr/local/lib/libindidriver.so.1.8.6 | grep Property7getTextEv
000433d4 T _ZNK4INDI8Property7getTextEv


I forgot to demangle before deleting the 1.8.4, to see what the first _ZNK versus _ZN letter where standing for. But I noticed that the 1.8.5 and 1.8.6 both had the _ZNK and 1.8.4 had the _ZN
Did something changed recently that broke the backward compatibility with pyindi ?

Thank you in advance for your help

Read More...