解决运行LLDB时出现ModuleNotFoundError: No module named ‘lldb.embedded_interpreter‘的问题

问题描述

在Linux下使用lldb进行调试时,在输入lldb命令后报错:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'lldb.embedded_interpreter'

此外,在使用lldb时,也会出现python模块的其它报错问题。

问题原因

lldb会自带一个python包,在lldb的安装目录内。例如,我安装的lldb自带的python路径为/usr/lib/llvm-14/lib/python3.8/site-packages,该目录下只有一个lldb包。如下图:

在这里插入图片描述
但是,lldb的默认python路径并不是其自带的python路径,且默认路径错误或不存在,导致lldb找不到它的lldb包,因此报错No module named 'lldb.embedded_interpreter'

解决方法

  1. 使用lldb -P命令查看lldb默认的python路径:
    在这里插入图片描述
    我的lldb默认python路径为/usr/lib/lib/python3.8/site-packages。(这个路径并不存在,导致报错)
  2. 在lldb的默认python路径下创建文件夹,注意这里不需要创建site-packages,只需要到python3.8即可。
    可以使用sudo mkdir -p <lldb默认python路径>,如我的为sudo mkdir -p /usr/lib/lib/python3.8
  3. 最重要的一步:在lldb默认python路径下,创建一个指向lldb自带的python的符号链接sudo ln -s <lldb自带的python路径> <lldb默认python路径>。例如我的为:sudo ln -s /usr/lib/llvm-14/lib/python3.8/site-packages /usr/lib/lib/python3.8
    注意:这里<lldb自带的python路径>需要包含site-packages<lldb默认python路径>不需要包含site-packages
    这样一来,在默认路径下就可以访问到lldb自带的python包了:
    在这里插入图片描述
  4. 再次尝试lldb命令,发现没有报错:
    在这里插入图片描述

参考:

https://bugs.launchpad.net/ubuntu/+source/llvm-defaults/+bug/1972855

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值