【问题标题】:lldb python errorlldb python错误
【发布时间】:2013-03-05 15:32:56
【问题描述】:

我尝试在我的 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 使用的 python 环境与其 Mac 主机不同,那么我在哪里进行更改以使其使用 32 位模式?谢谢。

更新:

我做了一个arch -i386 lldb,它适用于 32 位。为了让它在 64 位上工作,我为 OS X 安装了一个 64 位版本的 python readline,但在使用原生 python 库时遇到了更多问题,例如 termiostime。所以我下载了python 2.7.3 64位安装程序DMG文件并安装了它的二进制文件;现在 lldb 终于在我的 10.8 山狮上以 64 位运行。谢谢。

【问题讨论】:

  • 我在cordova run ios 上看到此错误后发现了这个问题。它似乎并没有影响到我的物理设备的构建。

标签: macos lldb


【解决方案1】:

看起来您在系统上的某个时间点安装了/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,除非您真的需要它在那里。

【讨论】:

  • 感谢@Jason,在这里运行 lldb 32 位工作。我猜想在 LLDB 中需要 Readline 来解释 python 命令,移动 .so 文件会导致找不到导入模块错误..
  • 有趣。我又戳了一下,在我的 10.7.5 系统上,Python 框架位于 /System/Library/Frameworks/Python.framework 中,而该框架中的 readline.so 是双向通用的。我仍然认为您在过去的某个时候安装了一个导致问题的软件包;)但是如果将 lldb 作为 32 位启动对您来说可以解决它,那应该没问题。
  • 我设法通过安装six 解决了这个问题; pip install six.
  • (重新)安装python2.7; /usr/local/bin/pip 安装六个
  • @Oleander 您的评论值得回答。它对我有用
【解决方案2】:

为了其他人来这个问题寻找快速解决方案 - Linus Oleander 的回答对我有用 - 也就是说,运行

pip install six

冒险猜测 为什么 这会起作用,我认为这可以解决 lldb 在具有“非标准”python 安装的机器上运行时面临的一些 python 不兼容问题。这也适用于使用 Homebrew 的 llvm 版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多