在 Mac 上的 Python 3 中导入 LLDB?

Jul*_*rec 5 python python-3.x lldb

我正在努力找到关于此的好的文档,我什至无法确认 LLDB 是否应该与 python 3 一起使用(请参阅LLDB-Python 参考)

当尝试按如下方式加载它时:

import sys
sys.path.append('/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python')
import lldb
Run Code Online (Sandbox Code Playgroud)

这适用于 python 2(确切地说是 2.7),但在 python 3(确切地说是 3.6)中,我收到一个错误(请参阅最后的完整 strack 跟踪):

ImportError: dynamic module does not define module export function (PyInit__lldb)
Run Code Online (Sandbox Code Playgroud)

我可以做些什么才能lldb在 Python 3 中导入?


全栈:

ImportError                               Traceback (most recent call last)
<ipython-input-3-2a8839b33e40> in <module>()
----> 1 import lldb

/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python/lldb/__init__.py in <module>()
     48                 fp.close()
     49             return _mod
---> 50     _lldb = swig_import_helper()
     51     del swig_import_helper
     52 else:

/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python/lldb/__init__.py in swig_import_helper()
     44         if fp is not None:
     45             try:
---> 46                 _mod = imp.load_module('_lldb', fp, pathname, description)
     47             finally:
     48                 fp.close()

~/Virtualenvs/py36/lib/python3.6/imp.py in load_module(name, file, filename, details)
    240                 return load_dynamic(name, filename, opened_file)
    241         else:
--> 242             return load_dynamic(name, filename, file)
    243     elif type_ == PKG_DIRECTORY:
    244         return load_package(name, filename)

~/Virtualenvs/py36/lib/python3.6/imp.py in load_dynamic(name, path, file)
    340         spec = importlib.machinery.ModuleSpec(
    341             name=name, loader=loader, origin=path)
--> 342         return _load(spec)
    343 
    344 else:

ImportError: dynamic module does not define module export function (PyInit__lldb)
Run Code Online (Sandbox Code Playgroud)

Jim*_*ham 4

据我了解,这是行不通的。LLDB 是针对 Python 2.7 构建的,您无法将 Python 2.x 模块导入 Python 3.x。

可以根据 Python 3.x 库构建您自己的 lldb 副本 - 我们需要在 Windows 上这样做,以便将源设置为使用任一版本进行构建。

我从未在 Mac 上尝试过,并且当前还没有设置 Xcode 项目来完成这项工作,但这应该不难做到。如果您对此感兴趣并且有更多问题,lldb-dev 邮件列表是询问他们的最佳位置:

http://lists.llvm.org/mailman/listinfo/lldb-dev