[英]Import LLDB in Python 3 on Mac?
我正在努力找到关于此的好的文档,我什至无法确认 LLDB 是否应该与 python 3 一起使用(请参阅LLDB-Python 参考)
当尝试按如下方式加载它时:
import sys
sys.path.append('/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python')
import lldb
这适用于 python 2(确切地说是 2.7),但在 python 3(确切地说是 3.6)中,我收到一个错误(请参阅最后的完整 strack 跟踪):
ImportError: dynamic module does not define module export function (PyInit__lldb)
我能做些什么才能在 Python 3 中导入lldb
?
全栈:
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)
据我了解,这是行不通的。 LLDB 是针对 Python 2.7 构建的,您无法将 Python 2.x 模块导入 Python 3.x。
可以针对 Python 3.x 库构建您自己的 lldb 副本 - 我们需要为 Windows 这样做,以便将源设置为使用任一版本构建。
我从来没有在 Mac 上尝试过,而且 Xcode 项目目前还没有设置来完成这项工作,但它应该不难做到。 如果您对此感兴趣并有更多问题,lldb-dev 邮件列表是询问他们的最佳地点:
阅读完这篇文章( https://lldb.llvm.org/resources/caveats.html )后,我使用 XC 11.5 让它在 10.15.4 上工作。
xcrun python3
>>> import sys
>>> sys.path.append('/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python3')
>>> import lldb
在我的机器上,我进行了测试,我不需要执行 xcrun python3(单独使用 python3 就足够了),但是由于列出的警告我把它留在了。 关键是使用专门为python3构建的lldb包。
如果您使用的是 Xcode,则根据 WWDC2019 的以下视频,从 Xcode 11 开始支持 Python 3: https : //developer.apple.com/videos/play/wwdc2019/429/? time = 925
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.