已安装libvirt,为何pip安装libvirt-python仍失败报错?
在RHEL 9.2上安装libvirt-python失败的问题
环境信息
- 系统:RHEL 9.2
- Python版本:3.9.16
- 已通过dnf安装libvirt和KVM组件,virsh命令可正常管理虚拟机,但通过pip/pipenv安装libvirt-python时持续报错。
安装报错日志
$ pip install libvirt-python Defaulting to user installation because normal site-packages is not writeable Collecting libvirt-python Downloading libvirt-python-9.7.0.tar.gz (132 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 132.1/132.1 kB 6.0 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done Building wheels for collected packages: libvirt-python Building wheel for libvirt-python (pyproject.toml) ... error error: subprocess-exited-with-error × Building wheel for libvirt-python (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [51 lines of output] running bdist_wheel running build running build_py Package 'libvirt' was not found Traceback (most recent call last): File "/home/bill/.local/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module> main() File "/home/bill/.local/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) File "/home/bill/.local/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel return _build_backend().build_wheel(wheel_directory, config_settings, File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 434, in build_wheel return self._build_with_temp_dir( File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 419, in _build_with_temp_dir self.run_setup() File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 341, in run_setup exec(code, locals()) File "<string>", line 284, in <module> File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 103, in setup return distutils.core.setup(**attrs) File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 185, in setup return run_commands(dist) File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 201, in run_commands dist.run_commands() File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands self.run_command(cmd) File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 989, in run_command super().run_command(command) File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/tmp/pip-build-env-cx5clem5/normal/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 364, in run self.run_command("build") File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command self.distribution.run_command(command) File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 989, in run_command super().run_command(command) File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 131, in run self.run_command(cmd_name) File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command self.distribution.run_command(command) File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 989, in run_command super().run_command(command) File "/tmp/pip-build-env-cx5clem5/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "<string>", line 166, in run File "<string>", line 35, in check_minimum_libvirt_version File "/usr/lib64/python3.9/subprocess.py", line 373, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['pkg-config', '--print-errors', '--atleast-version=0.9.11', 'libvirt']' returned non-zero exit status 1. [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for libvirt-python Failed to build libvirt-python ERROR: Could not build wheels for libvirt-python, which is required to install pyproject.toml-based projects
已安装的libvirt相关包
$ sudo dnf list | grep libvirt libvirt.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-client.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-config-network.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-config-nwfilter.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-interface.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-network.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-nodedev.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-nwfilter.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-qemu.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-secret.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-storage.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-storage-core.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-storage-disk.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-storage-iscsi.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-storage-logical.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-storage-mpath.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-storage-rbd.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-driver-storage-scsi.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-daemon-kvm.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-dbus.x86_64 1.4.1-5.el9 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-glib.x86_64 4.0.0-3.el9 @rhel-9-for-x86_64-appstream-eus-rpms libvirt-libs.x86_64 9.0.0-10.3.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms pcp-pmda-libvirt.x86_64 6.0.1-5.el9_2 @rhel-9-for-x86_64-appstream-eus-rpms python3-libvirt.x86_64 9.0.0-1.el9 @rhel-9-for-x86_64-appstream-eus-rpms fence-virtd-libvirt.x86_64 4.10.0-43.el9 rhel-9-for-x86_64-appstream-eus-rpms fence-virtd-libvirt.x86_64 4.10.0-43.el9 rhel-9-for-x86_64-appstream-rpms libvirt-nss.x86_64 9.0.0-10.3.el9_2 rhel-9-for-x86_64-appstream-eus-rpms libvirt-nss.x86_64 9.0.0-10.3.el9_2 rhel-9-for-x86_64-appstream-rpms
问题原因及解决办法
核心原因
报错提示Package 'libvirt' was not found,本质是编译libvirt-python需要libvirt的开发包(包含头文件、pkg-config配置文件),当前仅安装了运行时组件,缺少编译依赖。另外,系统已通过dnf安装了python3-libvirt.x86_64,这是官方适配的版本,完全满足使用需求。
解决步骤
直接使用系统自带包(推荐)
无需额外安装,直接调用系统已有的python3-libvirt:python3 -c "import libvirt; print(libvirt.__version__)"输出版本号即表示可用。
强制通过pip安装的处理方式
先安装libvirt开发依赖:sudo dnf install libvirt-devel为避免版本兼容问题,指定与系统libvirt匹配的版本安装:
pip install libvirt-python==9.0.0
内容的提问来源于stack exchange,提问作者Dan Largo
相关产品推荐
相关产品推荐

