(mach-o 文件,但架构不兼容(有“arm64”,需要“x86_64”))

kai*_*wei 16 python macos x86 importerror apple-silicon

当我在 Macbook Air M1 上运行 .py 文件时遇到问题:

[Running] python3 -u "/Users/kaiyuwei/Documents/graduation project/metaheuristics/run_CRO.py"
Traceback (most recent call last):
  File "/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/core/__init__.py", line 23, in <module>
    from . import multiarray
  File "/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/core/multiarray.py", line 10, in <module>
    from . import overrides
  File "/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/core/overrides.py", line 6, in <module>
    from numpy.core._multiarray_umath import (
ImportError: dlopen(/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so, 0x0002): tried: '/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/kaiyuwei/Documents/graduation project/metaheuristics/run_CRO.py", line 1, in <module>
    from models.multiple_solution.evolutionary_based.CRO import BaseCRO
  File "/Users/kaiyuwei/Documents/graduation project/metaheuristics/models/multiple_solution/evolutionary_based/CRO.py", line 1, in <module>
    import numpy as np
  File "/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/__init__.py", line 140, in <module>
    from . import core
  File "/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/core/__init__.py", line 49, in <module>
    raise ImportError(msg)
ImportError: 

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

We have compiled some common reasons and troubleshooting tips at:

    https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check the following:

  * The Python version is: Python3.8 from "/Library/Developer/CommandLineTools/usr/bin/python3"
  * The NumPy version is: "1.23.1"

and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.

Original error was: dlopen(/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so, 0x0002): tried: '/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))


[Done] exited with code=1 in 0.055 seconds
Run Code Online (Sandbox Code Playgroud)

我认为原因是我正在使用numpy“x86_64”的包,所以我尝试使用它pip install numpy --upgrade来升级 numpy,但我得到的输出如下:

Requirement already satisfied: numpy in /Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages (1.23.1)
Run Code Online (Sandbox Code Playgroud)

我也尝试python3 -m pip install --upgrade pip升级 python,但仍然;

Requirement already satisfied: pip in /Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages (22.1.2)
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

小智 13

这对我有用 -

ARCHFLAGS="-arch arm64" pip install numpy  --compile --no-cache-dir
Run Code Online (Sandbox Code Playgroud)


小智 5

对于我的 Mac M1 处理器,最佳安装方式是命令

pip3 install numpy==1.24.0  --compile --force-reinstall
Run Code Online (Sandbox Code Playgroud)


kai*_*wei -2

我通过简单地卸载 numpy 包解决了这个问题:

pip3 uninstall numpy
Run Code Online (Sandbox Code Playgroud)

并重新安装它:

pip3 install numpy
Run Code Online (Sandbox Code Playgroud)