summaryrefslogtreecommitdiff
path: root/pyuno/README.md
blob: 95e487706788da78004200d91068a958198c51e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 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.