Python 由于版本控制问题,安装virt manager时出错

Python 由于版本控制问题,安装virt manager时出错,python,qemu,linux-mint,kvm,libvirt,Python,Qemu,Linux Mint,Kvm,Libvirt,一天前,我在LinuxMint19.3上升级到20,现在我正在测试我的所有软件,以确保它们仍然工作。VirtManager现在不起作用(但在19.3中起作用),对此我感到非常困惑。Virsh似乎工作得很好: kelvin@mint-1:/usr/share$ virsh list --all Id Name State -------------------------------- - kali shut off - ubunt

一天前,我在LinuxMint19.3上升级到20,现在我正在测试我的所有软件,以确保它们仍然工作。VirtManager现在不起作用(但在19.3中起作用),对此我感到非常困惑。Virsh似乎工作得很好:

kelvin@mint-1:/usr/share$ virsh list --all
 Id   Name            State
--------------------------------
 -    kali            shut off
 -    ubuntu18.04     shut off
 -    ubuntu20.04     shut off
 -    ubuntu20.04.2   shut off
 -    win10           shut off
KVM似乎也能正常工作:

kelvin@mint-1:/usr/share$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
Libvirtd似乎也在发挥作用:

kelvin@mint-1:/usr/share$ service libvirtd status
● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-07-07 11:09:16 EDT; 1h 2min ago
TriggeredBy: ● libvirtd-ro.socket
             ● libvirtd-admin.socket
             ● libvirtd.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 16336 (libvirtd)
      Tasks: 25 (limit: 32768)
     Memory: 48.1M
     CGroup: /system.slice/libvirtd.service
             ├─ 1548 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/wifi1.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             ├─ 1549 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/wifi1.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             ├─ 1610 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             ├─ 1613 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             ├─ 1716 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/wifi2.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             ├─ 1717 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/wifi2.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             ├─ 1801 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/wifi3.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             ├─ 1803 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/wifi3.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             └─16336 /usr/sbin/libvirtd

Jul 07 11:09:16 mint-1 dnsmasq-dhcp[1548]: read /var/lib/libvirt/dnsmasq/wifi1.hostsfile
Jul 07 11:09:16 mint-1 dnsmasq[1610]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Jul 07 11:09:16 mint-1 dnsmasq-dhcp[1610]: read /var/lib/libvirt/dnsmasq/default.hostsfile
Jul 07 11:09:16 mint-1 dnsmasq[1801]: read /etc/hosts - 12 addresses
Jul 07 11:09:16 mint-1 dnsmasq[1801]: read /var/lib/libvirt/dnsmasq/wifi3.addnhosts - 0 addresses
Jul 07 11:09:16 mint-1 dnsmasq-dhcp[1801]: read /var/lib/libvirt/dnsmasq/wifi3.hostsfile
Jul 07 11:09:16 mint-1 libvirtd[16336]: libvirt version: 6.0.0, package: 0ubuntu8.1 (Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 20 May 2020 06:59:57 +0200)
Jul 07 11:09:16 mint-1 libvirtd[16336]: hostname: mint-1
Jul 07 11:09:16 mint-1 libvirtd[16336]: ignoring dangling symlink '/home/kelvin/.steampath'
Jul 07 11:10:51 mint-1 libvirtd[16336]: End of file while reading data: Input/output error
这是它抛出错误的点:

def _populate_initial_state(self):
    log.debug("libvirt version=%s",
                  self._backend.local_libvirt_version())
    log.debug("daemon version=%s",
                  self._backend.daemon_version())
    log.debug("conn version=%s", self._backend.conn_version())
    log.debug("%s capabilities:\n%s",
                  self.get_uri(), self.caps.get_xml())
我试图注释掉那个部分,但它仍然在另一个位置抛出一个错误。我能看到的唯一定义是:

def invalidate_caps(self):
    return self._backend.invalidate_caps()
caps = property(lambda self: getattr(self, "_backend").caps)

现在,我对这一点非常深入,以至于如果我真的在修改源代码,我觉得我遗漏了一些东西。那我哪里错了?

我想出了解决办法!按照说明(中文,但我不是中文,所以chrome会自动为我翻译),我只需要执行
pip3安装libxml2-python3
,而不必将
import libxml2
更改为
import lxml

def _populate_initial_state(self):
    log.debug("libvirt version=%s",
                  self._backend.local_libvirt_version())
    log.debug("daemon version=%s",
                  self._backend.daemon_version())
    log.debug("conn version=%s", self._backend.conn_version())
    log.debug("%s capabilities:\n%s",
                  self.get_uri(), self.caps.get_xml())
def invalidate_caps(self):
    return self._backend.invalidate_caps()
caps = property(lambda self: getattr(self, "_backend").caps)