tree: 74ea47f259c2ddf294052ef9919848bb09a822ef [path history]
  1. demo/
  2. doc/
  3. inc/
  4. qa/
  5. source/
  6. zipcore/
  7. CustomTarget_python_shell.mk
  8. CustomTarget_pyuno_pythonloader_ini.mk
  9. Executable_python.mk
  10. IwyuFilter_pyuno.yaml
  11. Library_pythonloader.mk
  12. Library_pyuno.mk
  13. Library_pyuno_wrapper.mk
  14. Makefile
  15. Module_pyuno.mk
  16. Package_python_scripts.mk
  17. Package_python_shell.mk
  18. Package_pyuno_pythonloader_ini.mk
  19. PythonTest_pyuno_pytests_insertremovecells.mk
  20. PythonTest_pyuno_pytests_testcollections.mk
  21. PythonTest_pyuno_pytests_testssl.mk
  22. Rdb_pyuno.mk
  23. README.md
pyuno/README.md

Python UNO Bindings

UNO bindings for the Python programming language.

To have much joy debugging Python extensions you need to:

  • a) edit pythonloader.py in your install setting DEBUG=1 at the top
  • b) touch pyuno/source/module/pyuno_runtime.cxx and make debug=true in pyuno

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.