error: subprocess-exited-with-error × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [14 lines of output] Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module> main() File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main json_out["return_val"] = hook(**hook_input["kwargs"]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 137, in get_requires_for_build_wheel backend = _build_backend() ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 61, in _build_backend ep = os.environ["_PYPROJECT_HOOKS_BUILD_BACKEND"] ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen os>", line 679, in __getitem__ KeyError: '_PYPROJECT_HOOKS_BUILD_BACKEND' [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> See above for output.
时间: 2025-04-13 16:40:09 浏览: 93
<think>好的,我现在需要帮助用户解决在pip安装过程中出现的“Getting requirements to build wheel failed”错误,特别是关于KeyError: 'ICU_VERSION'的问题。首先,我需要回忆一下这个错误通常的原因以及可能的解决方案。
用户提到他们在安装过程中遇到了KeyError: 'ICU_VERSION',这通常与安装需要ICU(International Components for Unicode)支持的库有关,比如PyICU或某些处理国际化的包。可能的情况是系统缺少ICU的开发文件,或者Python环境中相关的依赖没有正确安装。
接下来,我应该考虑如何引导用户解决这个问题。首先,系统级的依赖安装可能是必要的,例如在Ubuntu上安装libicu-dev,或者在macOS上使用Homebrew安装icu4c。然后,可能需要通过pip安装时指定某些选项,比如使用--no-binary来避免预编译的wheel,从而强制从源码构建,但这可能需要系统有正确的开发环境。
另外,用户提供的引用[3]显示错误发生在获取ICU_VERSION时,这说明安装的包可能依赖于ICU的特定版本,但系统环境中没有正确设置该变量。可能的解决方法是手动设置环境变量,或者在安装前确保ICU的版本符合要求。
还需要考虑Python版本的问题,用户提到Python3.11,是否某些包在这个版本上还不兼容?可能需要检查包的兼容性,或者尝试使用较新的版本。
最后,用户可能尝试过升级pip和wheel,如引用[1]中的建议,但问题依旧存在,所以需要更具体的步骤,比如安装系统依赖、设置环境变量、使用虚拟环境等。
总结步骤应该是:安装系统依赖,设置ICU环境变量,尝试从源码安装,使用虚拟环境,检查Python版本和包兼容性,最后寻求替代安装方法或社区支持。</think>### 分步解决“pip安装时get_requirements_to_build_wheel失败”问题
#### 1. **检查系统依赖**
问题可能源于缺少ICU库的开发文件。
- **Ubuntu/Debian**:安装`libicu-dev`:
```bash
sudo apt-get update && sudo apt-get install libicu-dev
```
- **macOS**:通过Homebrew安装`icu4c`:
```bash
brew install icu4c
export PATH="/usr/local/opt/icu4c/bin:$PATH" # 临时设置环境变量
```
#### 2. **手动指定ICU版本**
若安装过程中仍报错`KeyError: 'ICU_VERSION'`,尝试手动设置环境变量:
```bash
export ICU_VERSION=$(pkg-config --modversion icu-i18n) # 获取实际版本号
# 例如:export ICU_VERSION=67.1
```
#### 3. **强制从源码构建**
使用`--no-binary`参数跳过预编译的wheel文件:
```bash
pip install --no-binary=:all: <package_name> # 替换为具体包名,例如pyicu
```
若问题依旧,尝试升级构建工具:
```bash
pip install --upgrade setuptools wheel pyproject_hooks
```
#### 4. **使用虚拟环境**
隔离Python环境以避免系统配置冲突:
```bash
python3.11 -m venv myenv && source myenv/bin/activate
pip install <package_name>
```
#### 5. **检查Python版本兼容性**
某些包可能未适配Python 3.11。尝试以下操作:
- 使用旧版Python(如3.9或3.10)创建虚拟环境:
```bash
python3.10 -m venv oldenv && source oldenv/bin/activate
```
- 查阅包文档或GitHub Issues确认兼容性支持[^3]。
#### 6. **替代安装方法**
- **使用预编译wheel**:从第三方仓库下载:
```bash
pip install --prefer-binary <package_name>
```
- **手动安装依赖**:若问题在特定包(如`pyicu`),可先单独安装依赖:
```bash
pip install wheel pyicu # 或通过系统包管理器安装
```
#### 7. **调试与反馈**
- 查看完整错误日志:
```bash
pip install <package_name> -vvv # 显示详细日志
```
- 向包维护者提交Issue,附上日志和系统信息[^3]。
---
### 相关问题
1. 如何避免Python包安装时的依赖冲突?
2. 虚拟环境在Python开发中的作用是什么?
3. 哪些工具可以管理Python的系统级依赖(如`apt-get`与`brew`)?
[^1]: 引用升级pip和wheel的命令
: 引用错误日志中的`KeyError: 'ICU_VERSION'`
[^4]: 引用替代安装方法(如Docker)
阅读全文
相关推荐











