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

问题描述 投票:0回答:6

我在 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

我认为原因是我正在使用“x86_64”的

numpy
包,所以我尝试使用
pip install numpy --upgrade
来升级numpy,但我得到的输出如下:

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

我也尝试过

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)

有人可以帮助我吗?

python macos x86 importerror apple-silicon
6个回答
17
投票

这对我有用 -

ARCHFLAGS="-arch arm64" pip install numpy  --compile --no-cache-dir

7
投票

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

pip3 install numpy==1.24.0  --compile --force-reinstall

1
投票

我在 pycharm 执行测试时遇到了这个问题。

问题是测试用例的解释器设置为错误

转到测试用例的编辑配置修复了它。


0
投票

我遇到了这个问题,卸载并重新安装后不起作用,我更新到Python 3.11,现在可以完美运行了。


0
投票

使用 arm64 运行你的 python 文件或包。

示例

arch -arm64 app-store-connect

-4
投票

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

pip3 uninstall numpy

并重新安装:

pip3 install numpy
© www.soinside.com 2019 - 2024. All rights reserved.