我在带有 M1(Apple ARM 架构)的 Macbook 上,我尝试使用layoutparser库运行以下 Python 代码,该库间接使用pycocotools:
import layoutparser as lp
lp.Detectron2LayoutModel()
我收到了错误:
[...]
ImportError:
dlopen([...]/.venv/lib/python3.9/site-packages/pycocotools/_mask.cpython-39-darwin.so, 0x0002):
tried:
'[...]/.venv/lib/python3.9/site-packages/pycocotools/_mask.cpython-39-darwin.so'
(mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')),
'/usr/local/lib/_mask.cpython-39-darwin.so' (no such file),
'/usr/lib/_mask.cpython-39-darwin.so' (no such file)
对我来说至关重要的信息似乎是[...] is an incompatible architecture (have 'x86_64', need 'arm64e') [...]
。确实,我用的是苹果的ARM架构,有时候有些软件不支持。这通常通过使用模拟 Intel-x64 架构的 Rosetta 来解决。所以我用 Rosetta ( arch -x86_64 zsh
) 启动一个终端,创建一个新的虚拟环境,重新安装依赖项,然后尝试再次运行代码......
...我收到了与没有 Rosetta 的情况相同的错误:
[...] is an incompatible architecture (have 'x86_64', need 'arm64e') [...]
我已经仔细检查了 Rosetta 是否真的被激活:
> uname -m
x86_64
罗塞塔似乎在工作。然而,根据错误消息,它似乎不起作用。
任何想法可能是 Rosetta 或图书馆或其他任何问题,以及我如何尝试修复它?