Admin Console fails to load Python configuration

 

In this article, we’ll tackle all the possible ways that Admin Console could fail while trying to load your Python environment and using Graphical Data Publishing (GDP). We’ll provide clear instructions on why it’s failing in each scenario and possible solutions.

Python Executable not found

 
This error happens when there is no Python/Python3 executable in your environment PATH variable. This issue can be fixed by adding a Python executable to your PATH variable, or by selecting the executable using the folder button (folder icon)

Restart Admin Console after making the changes.

 Preference page showing errors when python executable is not found

Python Shared Library not found

 

This error happens when there is no Python shared library in your environment PATH, LD_LIBRARY_PATH, or DYLD_LIBRARY_PATH variable. This can be fixed by adding a library to your environment variable, or by selecting the library with the folder button (folder icon).

Note: This button is disabled in Mac OS but you can provide the path to the file by modifying the text box directly.

The shared library can usually be found in the following directory:

  • Linux (Ubuntu): <python exe>/../lib/libpython3.X.so.1.0

    • Example: /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0

  • Mac Os: <python exe>/../lib/libpython3.X.dylib

    • Example: /Library/Frameworks/Python.framework/Versions/3.8/lib/libpython3.8.dylib

  • Windows: <python installation>\python3XX.dll

     

     

    • Example: C:\Users\VM\AppData\Local\Programs\Python\Python310\python310.dll

We’ve observed that some embedded Python distributions do not ship a shared library; such installations are not compatible with GDP, and you’ll need to download a different distribution that ships a shared library. We’ve seen that the distributions from the official Python website usually work just fine (https://www.python.org/downloads/).

Restart Admin Console after making the changes.

 Preference page showing that shared library was not found

Python Version is not supported

 

This error is quite self-explanatory; it means that the current Python version selected is not supported. To fix this issue, select another executable that is supported and its corresponding shared library. 

Restart Admin Console after making the changes.

 Preference page showing that python version was not supported

Connext DDS Python API was not found in your installation

 

This error means that Admin Console was not able to find the Connext DDS Python API in your machine. In Connext versions 7.3.0 and higher, it is not necessary to manually install the Connext DDS Python API package if you are a Connext Pro user. Admin Console will unzip the corresponding Python package from the Connext installation and make it available at runtime. It will display in the Python Preferences page with the following message.

UI showing that python api was found

If you are an LM user, you will have to install the Connext DDS Python API manually. You can use pip to download it from the public repository pypi.org:

$> python3 -m pip install rti.connext==<connext_version>

Make sure that you install it at global level and not in a virtual environment (venv). Otherwise you would need to always launch Admin Console using the same virtual environment or it wouldn’t be able to detect that the Connext DDS Python API was installed.

Also make sure that you are calling the same Python executable that is being used by Admin Console. This can be a source of confusion if you think you are installing the package with a different Python version than the one being loaded in Admin Console.

Restart Admin Console for the changes to take effect.

 Preference page api not found

Java and Python interoperability check

 

This error can be tricky, it is the last check that Admin Console does before enabling the publications. It checks that Java is able to talk with Python successfully so that Admin Console is able to run code and read variables correctly. It can fail because the library that we use to communicate with Python (Jep) is not able to initialize correctly.

Sometimes this error can be easily fixed by specifying the Python home location of the installation. This location can be found with the following command:

$> python3 -c "import sys; print(sys.exec_prefix)"

If setting Python home does not fix the issue, it means that your installation is not compatible with GDP. Probably because the shared library does not contain all the required internal modules to work with Java. We disable the publications in this case to avoid Admin Console from crashing when creating the publication.

We’ve seen it happen usually with the embedded Python distributions of some Linux distributions and Mac OS embedded Python. It is usually fixed by using an official Python distribution downloaded directly from https://www.python.org/downloads/

It is not recommended to use other Python distributions that are distributed from other sources (Microsoft Store, Xcode embedded Python, Ubuntu embedded Python, etc). These distributions usually miss some essential features that make it incompatible with Admin Console (missing shared library, missing internal modules that are only available through the Python executable, etc).

 interoperability check failed

Version mismatch between Python and Java

 

This is just a warning about the installed Connext DDS Python API and the current version of Admin Console. It is not a problem per se but can cause issues because of Connext DDS Python API sensitivity to changes are not very backward compatible, that’s why it is not recommended to mix and match versions between Python and Java. 

In order to fix this warning you can remove your current Connext DDS Python API installation and follow the instructions above. You can run the following command to remove the current Connext DDS Python API version:

# Uninstall Connext DDS Python API
$> python3 -m pip uninstall rti.connext
# Or the following command for Activated packages (Pro Users)
$> python3 -m pip uninstall rti.connext.activated   
Now you can follow the instructions from Connext DDS Python API was not found in your installation paragraph.
version warning