forked from OSchip/llvm-project
38 lines
1.4 KiB
ReStructuredText
38 lines
1.4 KiB
ReStructuredText
Caveats
|
|
=======
|
|
|
|
.. contents::
|
|
:local:
|
|
|
|
.. _python_caveat:
|
|
|
|
Python
|
|
------
|
|
|
|
LLDB has a powerful scripting interface which is accessible through Python.
|
|
Python is available either from withing LLDB through a (interactive) script
|
|
interpreter, or as a Python module which you can import from the Python
|
|
interpreter.
|
|
|
|
To make this possible, LLDB links against the Python shared library. Linking
|
|
against Python comes with some constraints to be aware of.
|
|
|
|
1. It is not possible to build and link LLDB against a Python 3 library and
|
|
use it from Python 2 and vice versa.
|
|
|
|
2. It is not possible to build and link LLDB against one distribution on
|
|
Python and use it through a interpreter coming from another distribution.
|
|
For example, on macOS, if you build and link against Python from
|
|
python.org, you cannot import the lldb module from the Python interpreter
|
|
installed with Homebrew.
|
|
|
|
3. To use third party Python packages from inside LLDB, you need to install
|
|
them using a utility (such as ``pip``) from the same Python distribution as
|
|
the one used to build and link LLDB.
|
|
|
|
The previous considerations are especially important during development, but
|
|
apply to binary distributions of LLDB as well. For example, the LLDB that comes
|
|
with Xcode links against the Python 3 that's part of Xcode. Therefore you
|
|
should always use the Python in Xcode (through ``xcrun python3`` or
|
|
``/usr/bin/python3``) to import the lldb module or install packages.
|