If you are using the Python destination (not the program() destination executing the python3 binary), then syslog-ng does not use the Python binary at all.
The python() destination starts a separate thread inside syslog-ng instead, and uses the libpython library to interpret Python code.
In case you have syslog-ng compiled with Python 3 support, you can specify which libpython to use with the LD_LIBRARY_PATH environment variable or with standard ldconfig configurations.
For example: /apps/lib/libpython3.so --> LD_LIBRARY_PATH=/apps/lib
A syslog-ng instance compiled with Python 2 support currently can't be configured to use Python 3, you have to recompile it from source in this case (./configure --enable-python --with-python=3, for example).
The PKG_CONFIG_PATH envvar can be used to help the configure script find the appropriate path to libpython.
--
László Várady