Windows 11下pip安装libvirt-python遇报错的技术求助
Windows 11虚拟环境安装libvirt-python的报错解决办法
一、首次报错:缺少pkg-config二进制文件
报错信息
(venv) PS D:\PythonProd\Prod> pip install libvirt-python 正在收集 libvirt-python 使用缓存的 libvirt-python-10.2.0.tar.gz (246 kB) 正在安装构建依赖... 完成 获取构建wheel的需求... 错误 error: subprocess-exited-with-error × 获取构建wheel的需求执行失败。 │ 退出代码: 1 ╰─> [1行输出] 编译libvirt-python需要pkg-config二进制文件 [输出结束] note: 该错误来自子进程,大概率不是pip的问题。 error: subprocess-exited-with-error × 获取构建wheel的需求执行失败。 │ 退出代码: 1 ╰─> 查看上面的输出。 note: 该错误来自子进程,大概率不是pip的问题。
解决步骤
- 安装MSYS2后,打开MSYS2终端,执行
pacman -S pkg-config安装pkg-config工具。 - 将MSYS2的bin目录(通常是
C:\msys64\mingw64\bin)添加到系统环境变量PATH的最顶端,确保pip优先找到该工具。 - 重启虚拟环境所在的终端,让环境变量生效。
二、编译阶段cl.exe返回D8021错误
报错信息
py -m pip install libvirt-python 正在收集 libvirt-python 使用缓存的 libvirt-python-10.2.0.tar.gz (246 kB) 正在安装构建依赖... 完成 获取构建wheel的需求... 完成 安装后端依赖... 完成 准备元数据(pyproject.toml)... 完成 为收集到的包构建wheel: libvirt-python 为libvirt-python构建wheel(pyproject.toml)... 错误 error: subprocess-exited-with-error × 为libvirt-python构建wheel(pyproject.toml)执行失败。 │ 退出代码: 1 ╰─> [19行输出] running bdist_wheel running build running build_py 创建 build\lib.win-amd64-cpython-312 复制 build\libvirt.py -> build\lib.win-amd64-cpython-312 复制 build\libvirt_qemu.py -> build\lib.win-amd64-cpython-312 复制 build\libvirt_lxc.py -> build\lib.win-amd64-cpython-312 复制 build\libvirtaio.py -> build\lib.win-amd64-cpython-312 running build_ext 生成了285个包装器函数 生成了1个包装器函数 生成了1个包装器函数 构建'libvirtmod'扩展 创建 build\temp.win-amd64-cpython-312 创建 build\temp.win-amd64-cpython-312\Release 创建 build\temp.win-amd64-cpython-312\Release\build "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.39.33519\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -I . -ID:\PythonProd\VBoxIntegration\venv\include -IC:\Users\Nikolay\AppData\Local\Programs\Python\Python312\include -IC:\Users\Nikolay\AppData\Local\Programs\Py thon\Python312\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.39.33519\include" "-IC:\Program Files (x86)\Microsof t Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Window s Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\inclu de\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" /Tcbuild/libvirt.c /Fobuild\temp.win-amd64-cpython-312\Release\build/libvirt.obj -IC:/msys64/mingw64/bin/../include -Wp,-DPy_LIMITED_API=0x03060000 cl: 错误 D8021: 无效的数值参数 "/Wp,-DPy_LIMITED_API=0x03060000" error: 命令'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX86\\x64\\cl.exe'执行失败,退出代码2 [输出结束] note: 该错误来自子进程,大概率不是pip的问题。 ERROR: 构建libvirt-python的wheel失败 构建libvirt-python失败 ERROR: 无法构建libvirt-python的wheel,这是安装基于pyproject.toml的项目所必需的
解决办法
方法1:使用预编译wheel包(推荐)
寻找与你的Python版本、系统架构匹配的libvirt-python预编译wheel文件,下载后执行以下命令安装:
pip install 本地路径\libvirt-python-对应版本.whl
方法2:修改编译参数适配MSVC
- 下载源码包:
pip download libvirt-python
- 解压下载的
libvirt-python-xxx.tar.gz文件,进入解压后的目录。 - 找到
setup.py或pyproject.toml中包含-Wp,-DPy_LIMITED_API=0x03060000的编译参数行,将其修改为MSVC支持的格式:/DPy_LIMITED_API=0x03060000。 - 在虚拟环境中执行本地安装:
pip install .
方法3:切换到MinGW编译器
- 在MSYS2终端中安装依赖:
pacman -S mingw-w64-x86_64-python mingw-w64-x86_64-libvirt
- 打开MSYS2的mingw64终端,激活你的Python虚拟环境,执行安装命令:
pip install libvirt-python
内容的提问来源于stack exchange,提问作者zur9h
相关产品推荐
相关产品推荐

