我尝试在我的Mac上运行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 X安装了64位版本的python readline,但是对于termios
和time
等本机python库遇到了更多问题。所以我下载了python 2.7.3 64位安装程序DMG文件并安装了它的二进制文件;现在lldb最终在我的10.8山狮上以64位工作。感谢。
答案 0 :(得分:4)
看起来您在系统的某个位置安装了/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so
(我在Mac OS X 10.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
,除非你真的需要它。
答案 1 :(得分:0)
为了让其他任何人都来寻找快速解决方案-Linus Oleander的答案对我有用-也就是说,运行
pip install six
对于为什么可行的猜测,我认为这可以消除lldb在具有“非标准” python安装的计算机上运行时面临的一些python不兼容问题。当使用Homebrew的llvm版本时,此方法也适用。