diff options
Diffstat (limited to 'documentation/dev-manual/python-development-shell.rst')
-rw-r--r-- | documentation/dev-manual/python-development-shell.rst | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/documentation/dev-manual/python-development-shell.rst b/documentation/dev-manual/python-development-shell.rst new file mode 100644 index 0000000000..1b213318a5 --- /dev/null +++ b/documentation/dev-manual/python-development-shell.rst | |||
@@ -0,0 +1,50 @@ | |||
1 | .. SPDX-License-Identifier: CC-BY-SA-2.0-UK | ||
2 | |||
3 | Using a Python Development Shell | ||
4 | ******************************** | ||
5 | |||
6 | Similar to working within a development shell as described in the | ||
7 | previous section, you can also spawn and work within an interactive | ||
8 | Python development shell. When debugging certain commands or even when | ||
9 | just editing packages, ``pydevshell`` can be a useful tool. When you | ||
10 | invoke the ``pydevshell`` task, all tasks up to and including | ||
11 | :ref:`ref-tasks-patch` are run for the | ||
12 | specified target. Then a new terminal is opened. Additionally, key | ||
13 | Python objects and code are available in the same way they are to | ||
14 | BitBake tasks, in particular, the data store 'd'. So, commands such as | ||
15 | the following are useful when exploring the data store and running | ||
16 | functions:: | ||
17 | |||
18 | pydevshell> d.getVar("STAGING_DIR") | ||
19 | '/media/build1/poky/build/tmp/sysroots' | ||
20 | pydevshell> d.getVar("STAGING_DIR", False) | ||
21 | '${TMPDIR}/sysroots' | ||
22 | pydevshell> d.setVar("FOO", "bar") | ||
23 | pydevshell> d.getVar("FOO") | ||
24 | 'bar' | ||
25 | pydevshell> d.delVar("FOO") | ||
26 | pydevshell> d.getVar("FOO") | ||
27 | pydevshell> bb.build.exec_func("do_unpack", d) | ||
28 | pydevshell> | ||
29 | |||
30 | See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:functions you can call from within python`" | ||
31 | section in the BitBake User Manual for details about available functions. | ||
32 | |||
33 | The commands execute just as if the OpenEmbedded build | ||
34 | system were executing them. Consequently, working this way can be | ||
35 | helpful when debugging a build or preparing software to be used with the | ||
36 | OpenEmbedded build system. | ||
37 | |||
38 | Following is an example that uses ``pydevshell`` on a target named | ||
39 | ``matchbox-desktop``:: | ||
40 | |||
41 | $ bitbake matchbox-desktop -c pydevshell | ||
42 | |||
43 | This command spawns a terminal and places you in an interactive Python | ||
44 | interpreter within the OpenEmbedded build environment. The | ||
45 | :term:`OE_TERMINAL` variable | ||
46 | controls what type of shell is opened. | ||
47 | |||
48 | When you are finished using ``pydevshell``, you can exit the shell | ||
49 | either by using Ctrl+d or closing the terminal window. | ||
50 | |||