我试着在我的苹果电脑上运行lldb,并在启动时得到如下结果:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/System/Library/PrivateFrameworks/LLDB.framework/Versions/A/Resources/Python/lldb/embedded_interpreter.py", line 1, in <module>
import readline
ImportError: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so: no appropriate 64-bit architecture (see "man python" for running in 32-bit mode)
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined我尝试添加环境变量VERSIONER_PYTHON_PREFER_32_BIT=yes,但仍然出现此错误。我估计lldb使用的是与Mac主机不同的python环境,那么我应该在哪里进行更改,使其使用32位模式?谢谢。
更新:
我做了一个arch -i386 lldb,它可以在32位下工作。为了让它在64位环境下运行,我在OS上安装了一个64位版本的python readline,但是在termios和time等原生python库上遇到了更多的问题。因此,我下载了python 2.7.3 64位安装程序DMG文件,并安装了它的二进制文件;现在lldb终于可以在我的10.8山狮上以64位运行了。谢谢。
发布于 2013-03-18 05:48:04
看起来您在系统上的某个时刻安装了/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so (在我的MacOSX10.7.5安装中没有看到它,尽管它可能包含在10.8中),而且dylib只是32位构建的。您可以使用以下命令进行确认
file /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so在你的系统上。您可以尝试强制lldb也在32位模式下运行(发行版二进制文件是构建为32/64通用的),但是我建议从您的系统中删除仅32位的readline.so,除非您确实需要它。
发布于 2020-02-24 09:09:20
对于其他想要快速解决这个问题的人来说-- Linus Oleander的答案对我很管用--也就是,运行
pip install six
冒险猜测一下为什么这样做,我认为这解决了lldb在安装了非标准python的机器上运行时所面临的一些python不兼容问题。当使用Homebrew版本的llvm时,这也是有效的。
https://stackoverflow.com/questions/15457484
复制相似问题