Python Datalayer - Error importing ctrlxdatalayer

Hi everyone,

we are trying to create a provider in python to share our data with the data layer. The problem is that I get an error when trying to import the datalayer.

import ctrlxdatalayer

throws the error:

Intel (QEMU):

Python 3.8.10 (default, Mar 15 2022, 12:22:08) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctrlxdatalayer
System architecture:  x86_64
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/boschrexroth/.virtualenvs/airtico-control-unit-backend/lib/python3.8/site-packages/ctrlxdatalayer/__init__.py", line 7, in <module>
    from ctrlxdatalayer import client, converter, factory, provider, provider_node, \
  File "/home/boschrexroth/.virtualenvs/airtico-control-unit-backend/lib/python3.8/site-packages/ctrlxdatalayer/client.py", line 9, in <module>
    import ctrlxdatalayer.clib
  File "/home/boschrexroth/.virtualenvs/airtico-control-unit-backend/lib/python3.8/site-packages/ctrlxdatalayer/clib.py", line 14, in <module>
    libcomm_datalayer = ctypes.CDLL("libcomm_datalayer.so")
  File "/usr/lib/python3.8/ctypes/__init__.py", line 373, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libcomm_datalayer.so: cannot open shared object file: No such file or directory

 

Arm64 (Raspberry Pi):

Python 3.9.13 (main, May 23 2022, 21:57:12) 
[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctrlxdatalayer
System architecture:  aarch64
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/dist-packages/ctrlxdatalayer/__init__.py", line 7, in <module>
    from ctrlxdatalayer import client, converter, factory, provider, provider_node, \
  File "/usr/local/lib/python3.9/dist-packages/ctrlxdatalayer/client.py", line 9, in <module>
    import ctrlxdatalayer.clib
  File "/usr/local/lib/python3.9/dist-packages/ctrlxdatalayer/clib.py", line 14, in <module>
    libcomm_datalayer = ctypes.CDLL("libcomm_datalayer.so")
  File "/usr/lib/python3.9/ctypes/__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libcrypto.so.1.1: cannot open shared object file: No such file or directory

 

We followed the tutorial to setup the development environment by installing all necessary libraries (https://github.com/boschrexroth/ctrlx-automation-sdk/blob/main/scripts/environment/cloud-config-amd64) and the datalayer.deb. We also tried to QEMU environment from the repository with no success.

Are we missing something here?

Thank you

Best reply by nickH

Hi Benni, 

I just found time to test it on a Raspi (ubuntu 20 server). It worked for me. 

Are you sure you run it with python and the activated virtual environment. In my screenshot below you see the difference. If I run it with venv not activated, I get a similar error. (Please ignore the error I got, because no real ctrlX CORE was connected wit TCP). 

 

Best regards, 

Nick

View original
7 replies