如何在Mac上导入Python的lldb模块?

w7t8yxp5  于 2023-10-21  发布在  Python
关注(0)|答案(3)|浏览(172)

我需要一个lldb python库来调试我的python脚本。我按照www.example.com的说明进行了python环境配置lldb.llvm.org。但我得到了一些错误如下:

/Users/heping/Desktop/Scripts/.env/python-3.7.3/bin/python /Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py --multiproc --qt-support=auto --client 127.0.0.1 --port 57996 --file /Users/heping/Desktop/Scripts/RevealServerCommands.py
pydev debugger: process 59879 is connecting

Connected to pydev debugger (build 193.5662.61)
Traceback (most recent call last):
  File "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python/lldb/__init__.py", line 35, in <module>
    import _lldb
ModuleNotFoundError: No module named '_lldb'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python/lldb/__init__.py", line 38, in <module>
    from . import _lldb
ImportError: dynamic module does not define module export function (PyInit__lldb)

PyCharm项目结构如下图所示:

dfuffjeb

dfuffjeb1#

Xcode附带的lldb python模块针对特定版本的Python构建。
在Xcode 11之前,lldb是在/System/Library/Frameworks中基于Python 2.7.1构建的。从Xcode 11开始,lldb是针对Python 3(目前是3.7.3)的版本构建的,该版本随Xcode一起发布,您可以从中获得lldb。你可以通过运行xcrun python3找到合适的python3命令行工具。
我们还没有成功地将我们在Python 3.7.3中构建的lldb模块加载到其他手工构建的Python中。我不确定Python是否特别支持这一点,尽管我不知道有谁研究过支持这一点需要什么。
我们在lldb绑定中使用了很多Python C API,所以我们更多地绑定到Python版本,而不是纯Python模块。无论如何,目前如果你需要将lldb模块加载到你从其他地方安装的python中,你很可能需要针对那个python库手工构建lldb。

6mw9ycah

6mw9ycah2#

在MacOS PyCharm上转到Preferences\Python Interpreter\然后单击设置按钮和Show All

其他答案说你需要这个:

import sys
sys.path.append('/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python3')
import lldb

在上面的设置下,它只适用于import lldb

jhdbpxl9

jhdbpxl93#

关于在mac中安装或使用lldb python lib。

如果你使用的是系统python:/usr/bin

如果你目前在系统中使用ORIGIN python,你可能应该使用里面的lldb:/Library/Developer/CommandLineTools/Library/PrivateFrameworks/LLDB.framework/Resources/Python
但是,路径可能与我刚才提供的路径不同。所以这里有一些步骤来确定你应该关注的lldb路径。
1.在你的终端中,运行which pythonwhich lldb,你应该确保当前的python和lldb在同一个文件夹下:/usr/bin/
1.如果是这样,运行lldb -P查看lldb python库,它应该已经在您的mac中了。
1.然后,配置你的路径,根据你现在使用的shell,将以下路径添加到你的zshrc或bash_profile中:

# PYTHONPATH is an environment variable that is used to 
# specify the location of Python libraries. It is typic-
# ally used by developers to ensure that their code can
# find the required Python libraries.
PYTHONPATH=`lldb -P`

1.请记住运行source ~/.zshrc,然后您可以运行python,然后您可以看到以下输出:

➜  ~ /usr/bin/python3
Python 3.9.6 (default, Aug 11 2023, 19:44:49)
[Clang 15.0.0 (clang-1500.0.40.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import lldb
>>>

如果使用conda python:/Users/username/opt/miniconda3/bin/python

您可以在终端中运行conda install -c conda-forge lldb。你也可以参考这个网页:https://anaconda.org/conda-forge/lldb
然后你可以测试你的lldb。

(base) ➜  ~ python
Python 3.9.18 | packaged by conda-forge | (main, Aug 30 2023, 03:53:08)
[Clang 15.0.7 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import lldb
>>>

希望能帮上忙!

相关问题