================ @@ -0,0 +1,63 @@ +# Caveats + +(python_caveat)= + +## Python + +LLDB has a powerful scripting interface which is accessible through Python. +Python is available either from within 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 an 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. + +### LLDB in Xcode on macOS + +Users of lldb in Xcode on macOS commonly run into these issues when they +install Python, often unknowingly as a dependency pulled in by Homebrew or +other package managers. The problem is the symlinks that get created in +`/usr/local/bin`, which comes before `/usr/bin` in your path. You can use +`which python3` to check to what it resolves. + +To be sure you use the Python that matches with the lldb in Xcode use `xcrun` +or use the absolute path to the shims in `/usr/bin`. + +``` +$ xcrun python3 +$ /usr/bin/python3 +``` + +Similarly, to install packages and be able to use them from within lldb, you'll +need to install them with the matching `pip3`. + +``` +$ xcrun pip3 +$ /usr/bin/pip3 +``` + +The same is true for Python 2. Although Python 2 comes with the operating +system rather than Xcode, you can still use `xcrun` to launch the system +variant. + +``` +$ xcrun python +$ /usr/bin/python +``` + +Keep in mind that Python 2 is deprecated and no longer maintained. Future +versions of macOS will not include Python 2.7. ---------------- medismailben wrote:
Is that even worth mentioning at this point ? https://github.com/llvm/llvm-project/pull/201256 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
