Mac M1安装elasticdeform报错:NPY_ARRAY_UPDATEIFCOPY未定义
解决elasticdeform在M1 MacBook Pro Conda环境下编译失败的问题
问题原因
这个错误是因为NPY_ARRAY_UPDATEIFCOPY是NumPy 1.23及以后版本才新增的宏定义,你当前Conda环境里的NumPy版本过低,导致编译时找不到该标识符。你之前设置环境变量的思路不对,这是编译时依赖的NumPy头文件宏,不是环境变量能解决的。
可行解决办法
方法1:升级Conda环境中的NumPy版本
先激活目标Conda环境,执行以下命令升级NumPy:conda install numpy>=1.23升级完成后重新安装elasticdeform:
pip install elasticdeform方法2:安装预编译wheel包(推荐M1用户)
M1属于arm64架构,直接编译易出兼容性问题,可优先尝试预编译包:- 先升级pip到最新版本:
pip install --upgrade pip - 强制安装预编译包:
pip install elasticdeform --only-binary :all:
若上述命令找不到适配包,可手动下载对应arm64的wheel文件(需匹配你的Python版本与系统),再本地安装:
pip install /path/to/elasticdeform-xxx-cp3x-cp3x-macosx_11_0_arm64.whl- 先升级pip到最新版本:
方法3:降级elasticdeform到兼容旧NumPy的版本
若不想升级NumPy,可安装不依赖NPY_ARRAY_UPDATEIFCOPY的旧版本,比如0.4.9:pip install elasticdeform==0.4.9
内容的提问来源于stack exchange,提问作者Janikas
相关产品推荐
相关产品推荐

