【问题标题】:Error "mach-o, but wrong architecture" after installing anaconda on mac在 mac 上安装 anaconda 后出现错误“mach-o,但架构错误”
【发布时间】:2017-01-21 11:13:45
【问题描述】:

我在导入任何包时遇到架构错误,我知道我的 Python 可能不兼容,无法理解。 当前 Python 版本 - 2.7.10

`MyMachine:desktop *********$ python pythonmath.py 回溯(最近一次通话最后): 文件“pythonmath.py”,第 1 行,在 导入数学 ImportError: dlopen(/Users/*********/anaconda/lib/python2.7/lib-dynload/math.so, 2): 找不到合适的图像。发现: /Users/************/anaconda/lib/python2.7/lib-dynload/math.so:mach-o,但架构错误 我的机器:桌面 ***********$ python pythonmath.py 回溯(最近一次通话最后): 文件“pythonmath.py”,第 1 行,在 导入数学 ImportError: dlopen(/Users/anaconda/lib/python2.7/lib-dynload/math.so, 2): 找不到合适的图像。发现: /Users/***********/anaconda/lib/python2.7/lib-dynload/math.so:mach-o,但架构错误

【问题讨论】:

    标签: python macos python-2.7


    【解决方案1】:

    以下步骤为我解决了这个问题。

    • 退出终端。
    • 转到 Finder => 应用程序
    • 右键单击终端
    • 获取信息
    • 选中使用 Rosetta 打开复选框

    现在,打开终端再试一次。

    PS:Rosetta 允许采用 M1 架构的 Mac 使用为采用 Intel 芯片的 Mac 构建的应用程序。大多数时候,大多数架构问题背后的原因仅仅是这个芯片兼容性的原因。因此,终端的“使用 Rosetta 打开”允许我们在此类应用程序中默认使用 Rosetta。

    【讨论】:

    • 对于我们这些不使用 Mac(经常)的人来说,添加“使用 Rosetta 打开”的含义是值得的。那会启动 32 位仿真吗?
    • 编辑了答案。感谢您的建议。
    • 鉴于最近从 x64 切换到 ARM (+1),此答案是一个有用的补充,但在回答旧问题时请务必小心:专门解决为什么一个 6 岁的孩子通常是个好主意问题本身需要一个新的答案。
    【解决方案2】:

    您正在混合使用 32 位和 64 位版本的 python。 可能您在 32 位计算机上安装了 64 位 python 版本。 继续卸载 python 并使用正确的配置重新安装它。

    【讨论】:

      【解决方案3】:

      这个问题很可能是由于 python 安装混乱造成的。您可以尝试从您的操作系统中卸载 python(获取此答案以获取帮助How to uninstall Python 2.7 on a Mac OS X 10.6.4?)

      然后重新安装 python。这对我有用。

      【讨论】:

        【解决方案4】:

        我在尝试安装 dask 时遇到了类似的问题。 我按照以下步骤解决了它:

        1/检查安装了哪个版本的python(我有:mac os python 2.x和3.x,anaconda 3.8,brew 3.9):

        python -m pipenv.help
        

        找到 Python 安装:

        • 3.9.6: /opt/homebrew/bin/python3
        • 3.9.6: /opt/homebrew/bin/python3.9
        • 3.8.8: /opt/anaconda3/bin/python3
        • 3.8.8: /opt/anaconda3/bin/python3.8
        • 3.8.2: /usr/bin/python3
        • 2.7.16: /usr/bin/python2
        • 2.7.16: /usr/bin/python2.7

        2/使用pipenv创建3.8虚拟环境:

        pipenv install --python '/opt/anaconda3/bin/python3'
        pipenv install 'dask[complete]'
        

        注意:默认情况下,pipenv 使用 3.9 brew 版本的 python 创建虚拟环境 - 这导致了问题。

        3/ 激活虚拟环境并使用:

        pipenv shell
        

        【讨论】:

          猜你喜欢
          • 2020-05-03
          • 2011-01-17
          • 1970-01-01
          • 1970-01-01
          • 2012-09-16
          • 1970-01-01
          • 2017-11-17
          • 1970-01-01
          • 2018-03-05
          相关资源
          最近更新 更多