为什么 numpy 不支持 PEP517 构建?

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

当我运行

poetry install
时,尝试安装 numpy=(1.25.1); 时出现 ChefBuildError;具体来说,它表示后端“setuptools.build_meta:legacy”不可用。

ModuleNotFoundError: No module named 'distutils'
  at /opt/homebrew/Cellar/poetry/1.7.1/libexec/lib/python3.12/site-packages/poetry/installation/chef.py:164 in _prepare

Poetry 表示此错误源自构建后端,可能不是 Poetry 的问题,而是 numpy (1.25.1) 不支持 PEP 517 构建的问题。

根据

ModuleNotFoundError
消息,我确保使用brew安装python3.12。没有运气。根据诗的建议,我尝试跑步
pip wheel --no-cache-dir --use-pep517 "numpy (==1.25.1)"
。我收到一个错误,还指出
ModuleNotFoundError
表示无法找到
distutils

这是我的计算环境

System Version: macOS 14.1.2 (23B92)
Kernel Version: Darwin 23.1.0
Homebrew: 4.1.22
Poetry: 1.7.1
Python: 3.12.0
pip: 23.3.1
python numpy homebrew python-poetry
1个回答
0
投票

我也遇到了同样的问题,以下是我的系统版本和相关工具:

系统版本:macOS 13.6.4

内核版本:Darwin 22.6.0

自制4.2.5

诗歌(1.7.1版)

点21.2.3

通过我的实验,我发现Python 3.12和numpy 1.25.2版本之间存在冲突。将 Python 版本降低到 3.10 可以解决该问题。

我最终使用pyenv来切换Python版本:

brew install pyenv

根据官方文档配置shell环境。

重新启动终端以应用更改后,安装Python 3.10.0:

pyenv install 3.10.0

切换Python版本:

pyenv local 3.10.0

pyenv global 3.10.0

确认版本切换后,记得将Poetry项目的Python虚拟环境切换到3.10.0:

poetry env use 3.10.0
© www.soinside.com 2019 - 2024. All rights reserved.