如何在Mac上为python导入lldb模块?

问题描述 投票:0回答:1

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

/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项目结构如下图所示:PyCharm Screenshot

python python-3.x lldb
1个回答
0
投票

Xcode附带的lldb python模块是针对特定版本的Python构建的。

Xcode 11 lldb之前是在/ System / Library / Frameworks中针对Python2.7.1构建的。从Xcode 11开始,lldb是基于随您获取lldb的Xcode附带的Python 3版本(当前为3.7.3)构建的。您可以通过运行xcrun python3找到合适的python3命令行工具。

[将针对此3.7.3 Python构建的lldb模块加载到其他手工构建的Python中并没有取得太大的成功。我不确定Python是否特别支持此功能,尽管我不知道有人研究过支持该功能的方法。

我们在lldb绑定中确实使用了许多Python C API,因此与纯Python模块相比,我们更受Python版本的约束。无论如何,目前,如果您需要将lldb模块加载到从其他位置安装的python中,则很可能需要针对该python库手动构建lldb。

© www.soinside.com 2019 - 2024. All rights reserved.