簡體   English   中英

在 Mac 上的 Python 3 中導入 LLDB?

[英]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 郵件列表是詢問他們的最佳地點:

http://lists.llvm.org/mailman/listinfo/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM