python
config_error
ai_generated
true
错误:尝试调用 'setup.py' 时后端子进程退出。
ERROR: Backend subprocess exited when trying to invoke 'setup.py'.
ID: python/pip-fallback-to-legacy-setup-py
80%修复率
85%置信度
0证据数
2024-03-15首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.10 | active | — | — | — |
| 3.11 | active | — | — | — |
| 3.12 | active | — | — | — |
根因分析
pip 默认使用 PEP 517 构建隔离,但项目的 pyproject.toml 缺少 build-system 表,导致回退到旧的 setup.py 方式,因依赖缺失而失败。
English
pip defaults to PEP 517 build isolation but the project's pyproject.toml missing build-system table, causing fallback to legacy setup.py which fails due to missing dependencies.
解决方案
-
95% 成功率 Add build-system table to pyproject.toml
Add to pyproject.toml: [build-system] requires = ["setuptools", "wheel"] build-backend = "setuptools.build_meta"
-
85% 成功率 Use --no-build-isolation flag
pip install --no-build-isolation <package>
无效尝试
常见但无效的做法:
-
Reinstalling setuptools globally with pip install --upgrade setuptools
70% 失败
Global upgrade doesn't fix the build-time dependency issue caused by PEP 517 isolation.
-
Deleting pyproject.toml entirely
90% 失败
Removing the file doesn't help; pip will still try to use legacy setup.py without proper environment.