LLDB 出现 _remove_dead_weakref 错误

Getting _remove_dead_weakref error for LLDB

每次我在 MacOS 上启动 lldb 时,都会收到以下错误。

  File "<input>", line 1, in <module>
  File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 52, in <module>
    import weakref
  File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref

我检查过所有文件和名称都在那里。

我不知道是什么导致了这个问题。

有什么想法吗?

lldb 使用的 Python 框架实际上是系统自带的,而不是 Xcode,但除此之外,Brad 在上面。

lldb 链接到 Python,它用于支持一系列可扩展性功能。即使 lldb 从系统安装中拉入 Python dylib - 因为这是它链接到的 - 其他 Pythons 的存在(通常是因为其他 python 二进制文件在你的路径上提前于 /usr/bin/python) 将导致 Python 从其他 Python 安装读取其库文件。总的来说,这似乎不太顺利。

在我们遇到的大多数情况下,确保 /usr/bin/python 在您的路径最前面即可解决问题。还要确保 PYTHONPATH 没有引用您端安装中的 python 文件。

要将系统 Python 用于 lldb 但继续将 Homebrew python 用于其他所有内容,请将此 shell 脚本另存为 ~/.local/bin/lldb:

#!/bin/sh
unset PYTHONPATH
export PATH=/usr/bin:$PATH
exec lldb "$@"

然后chmod +x ~/.local/bin/lldb使其可执行。确保 ~/.local/bin 在您的 PATH 中,并且在系统 lldb 所在的 /usr/bin 之前。