【问题标题】:scipy ImportError: dlopen no suitable image found in Python 3scipy ImportError:dlopen 在 Python 3 中找不到合适的图像
【发布时间】:2023-03-06 16:35:01
【问题描述】:

我有 python 3.6,Mac OS X El Capitan。 我通过pip install scipy 安装了 scipy。但是当我导入 scipy 时,出现以下错误:

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scipy/init.py in () 第116章 117 --> 118 来自 scipy._lib._ccallback 导入 LowLevelCallable 119 120 从 scipy._lib._testutils 导入 PytestTester

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scipy/_lib/_ccallback.py in () ----> 1 来自 .导入_ccallback_c 2 3 导入 ctypes 4 5 PyCFuncPtr = ctypes.CFUNCTYPE(ctypes.c_void_p).bases[0]

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scipy/_lib/_ccallback_c.cpython-36m-darwin.so, 2): 没有合适的图片成立。发现: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scipy/_lib/_ccallback_c.cpython-36m-darwin.so:mach-o,但架构错误

我在 Python2 中没有收到此错误。

【问题讨论】:

  • Python 2 中scipy 的成功导入独立于Python 3.6 中的导入,因为每个Python 安装都有自己的scipy 安装。报告的错误“mach-o, but wrong architecutre”可能是由于安装了 i386 *.so 文件作为scipy 的一部分(在x86_32 的意义上)scipy 的二进制分发(即包含 Mach- O i386 *.so 文件),但有一个 x86_64 Python。
  • 也很有用,关于架构(x86_64、i386 等)是file /path/to/python

标签: scipy python-3.6


【解决方案1】:

看来我是地球上唯一遇到此问题的人。幸运的是,我通过无数次尝试让它工作。万一以后有人遇到同样的错误,你可以试试这个:python -m pip install scipy。我不知道为什么pip install scipy 不起作用。

【讨论】:

  • 一般来说,pippython -m pip 可以运行不同的 Python 版本,因此可以运行不同的 pips。当PATH 中的第一个pythonPATH 中的第一个pip 对应的Python 版本不同时,可能会发生这种情况。 which -a pythonwhich -a pip 以及 python --versionpip --version 可以提供有关这些文件的信息。在调用 pippython -m pip 时运行不同版本的 pip 似乎并不能解释问题中报告的错误。
【解决方案2】:

我在 MacOS 10.14.2 上发现我安装了 Scipy 1.1。执行python -m pip install scipy 后,我得到了 Scipy 1.2 并摆脱了“ImportError: dlopen”。

【讨论】:

    猜你喜欢
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 2015-03-27
    • 2021-10-23
    • 2013-12-14
    • 1970-01-01
    相关资源
    最近更新 更多