当我运行
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
我也遇到了同样的问题,以下是我的系统版本和相关工具:
系统版本: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
重新启动终端以应用更改后,安装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