The commit below tried to change pythonloader to set the Python home using PyConfig instead of setting PYTHONHOME. However, it only built up the PyConfig locally on the stack and never actually passed it to Python. This meant that when building with Python versions >= 3.8 the Python home was never actually set. When using an internal Python, it ended up printing an error message about not being able to find platform independent libraries. commitda0e9240bfAuthor: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Date: Thu Dec 21 12:01:50 2023 +0200 tdf#158447 Use PyConfig for setting Python home directory with Python >= 3.8 Change-Id: Ic5b7c60613b22f5215cb1a2a13fecf3e0946ca49 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161089 Change-Id: Icda3b0e538b958a04357027c486fd3af17a8fca1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211289 Tested-by: Jenkins Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> (cherry picked from commite11160b50b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211301 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Python UNO Bindings
UNO bindings for the Python programming language.
To have much joy debugging Python extensions you need to:
- a) edit
pythonloader.pyin your install settingDEBUG=1at the top - b)
touch pyuno/source/module/pyuno_runtime.cxxandmake debug=trueinpyuno
Then you'll start to see your exceptions on the console instead of them getting lost at the UNO interface.
Python also comes with a gdb script
libpython$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so.1.0-gdb.py
that is copied to instdir and will be auto-loaded by gdb;
it provides commands like py-bt to get a Python-level backtrace,
and py-print to print Python variables.
Another way to debug Python code is to use pdb: edit some initialization
function to insert import pdb; pdb.set_trace() (somewhere so that it is
executed early), then run soffice from a terminal and a command-line Python
debugger will appear where you can set Python-level breakpoints.