lldb python错误

gig*_*sai 13 macos lldb

我尝试lldb在我的Mac上运行并在启动时获取此信息:

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
Run Code Online (Sandbox Code Playgroud)

我尝试添加环境变量VERSIONER_PYTHON_PREFER_32_BIT=yes但仍会出现此错误.我认为lldb正在使用与Mac主机不同的python环境,那么我在哪里进行更改以使其使用32位模式?谢谢.

更新:

我做了一个arch -i386 lldb,它工作在32位.为了使它在64位工作,我为OS X安装了一个64位版本的python readline但是在本机python库中遇到了更多问题,比如termiostime.所以我下载了python 2.7.3 64位安装程序DMG文件并安装了它的二进制文件; 现在lldb最终在我的10.8山狮上以64位工作.谢谢.

Jas*_*nda 5

看起来您/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
Run Code Online (Sandbox Code Playgroud)

在您的系统上。您可以尝试强制 lldb 也以 32 位模式运行(发行版二进制文件是 32-/64- 通用的),但我建议从您的系统中删除仅 32 位模式,readline.so除非您确实需要它。

  • 我设法通过安装“six”解决了这个问题;`pip 安装六`。 (14认同)