![如何在 Linux Mint 20 上安装 python3-pyqt4? HPLIP 依赖性](https://linux22.com/image/177721/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20Mint%2020%20%E4%B8%8A%E5%AE%89%E8%A3%85%20python3-pyqt4%EF%BC%9F%20HPLIP%20%E4%BE%9D%E8%B5%96%E2%80%8B%E2%80%8B%E6%80%A7.png)
为了安装 HPLIP 3.20.6,我需要安装依赖项 python3-pyqt4。
错误:所需的依赖项“python3-pyqt4(PyQt 4-Python 的 Qt 接口(适用于 Qt 版本 4.x))”仍然丢失。
错误:如果没有此依赖性,安装将无法继续。
错误:请手动安装此依赖项并重新运行此安装程序。
当尝试通过 apt 安装时,出现找不到它的错误。
E: 无法找到包 python3-pyqt4
我该如何安装这个依赖项?
我需要安装 HPLIP 3.20.5 或更高版本才能使用新打印机,因此非常感谢解决此问题的任何帮助。谢谢。
编辑:进一步澄清。我尝试连接的打印机是 HP Envy 6020。HPLIP 支持的设备列表支持 Envy 6000 系列,但至少需要 3.20.5 HPLIP 才能运行。因此,我需要安装该版本,并且需要 python3-pyqt4 才能安装。
答案1
Qt4 在 Mint 20 中已被 Qt5 取代。使用:
apt install python3-pyqt5
它应该是兼容的。
答案2
替代解决方案。将打印机设置为无驱动打印机。
在一些帮助下Linux Mint 论坛我无需使用 HPLIP 即可使打印机正常工作。据我了解,这是通过打印机支持无驱动打印的能力实现的。因为这可能会对将来的某人有所帮助,所以这是要遵循的程序。
确保打印机和计算机位于同一无线网络中
使用
avavi-browse
命令搜索本地无线网络上的设备。使用 CUPSdriverless
和lpstat
命令列出相关打印机状态
avahi-browse -rt _ipp._tcp
avahi-browse -rt _uscan._tcp
driverless
lpstat -l -e
输出示例avahi-browse -rt _ipp._tcp
:
➜ ~ avahi-browse -rt _ipp._tcp
+ wlp1s0 IPv6 HP ENVY 6000 series [B68C8C] Internet Printer local
+ wlp1s0 IPv4 HP ENVY 6000 series [B68C8C] Internet Printer local
= wlp1s0 IPv4 HP ENVY 6000 series [B68C8C] Internet Printer local
hostname = [HP3822E2B68C8C.local]
address = [192.168.1.190]
port = [631]
txt = ["Fax=F" "mopria-certified=2.0" "Scan=T" "kind=document,envelope,photo,postcard" "URF=CP1,MT1-2-8-9-10-11,PQ3-4-5,RS300-600,SRGB24,OB9,OFU0,W8-16,DEVW8-16,DEVRGB24-48,ADOBERGB24-48,DM3,IS1,V1.4,FN3" "PaperMax=legal-A4" "pdl=application/vnd.hp-PCL,image/jpeg,image/urf,image/pwg-raster,application/PCLm" "Duplex=T" "Color=T" "usb_MDL=ENVY 6000 series" "usb_MFG=HP" "ty=HP ENVY 6000 series" "product=(HP ENVY 6000 series)" "UUID=9dddcf7d-2ef9-51a5-8be4-be1e5e3ebfc2" "rp=ipp/print" "TLS=1.2" "qtotal=1" "priority=20" "note=" "adminurl=http://HP3822E2B68C8C.local./#hId-pgAirPrint" "txtvers=1"]
= wlp1s0 IPv6 HP ENVY 6000 series [B68C8C] Internet Printer local
hostname = [HP3822E2B68C8C.local]
address = [192.168.1.190]
port = [631]
txt = ["Fax=F" "mopria-certified=2.0" "Scan=T" "kind=document,envelope,photo,postcard" "URF=CP1,MT1-2-8-9-10-11,PQ3-4-5,RS300-600,SRGB24,OB9,OFU0,W8-16,DEVW8-16,DEVRGB24-48,ADOBERGB24-48,DM3,IS1,V1.4,FN3" "PaperMax=legal-A4" "pdl=application/vnd.hp-PCL,image/jpeg,image/urf,image/pwg-raster,application/PCLm" "Duplex=T" "Color=T" "usb_MDL=ENVY 6000 series" "usb_MFG=HP" "ty=HP ENVY 6000 series" "product=(HP ENVY 6000 series)" "UUID=9dddcf7d-2ef9-51a5-8be4-be1e5e3ebfc2" "rp=ipp/print" "TLS=1.2" "qtotal=1" "priority=20" "note=" "adminurl=http://HP3822E2B68C8C.local./#hId-pgAirPrint" "txtvers=1"]
输出示例avahi-browse -rt _uscan._tcp
:
➜ ~ avahi-browse -rt _uscan._tcp
+ wlp1s0 IPv4 HP ENVY 6000 series [B68C8C] _uscan._tcp local
+ wlp1s0 IPv6 HP ENVY 6000 series [B68C8C] _uscan._tcp local
= wlp1s0 IPv4 HP ENVY 6000 series [B68C8C] _uscan._tcp local
hostname = [HP3822E2B68C8C.local]
address = [192.168.1.190]
port = [8080]
txt = ["mopria-certified-scan=1.2" "duplex=F" "is=platen" "cs=binary,color,grayscale" "pdl=application/octet-stream,application/pdf,image/jpeg" "ty=HP ENVY 6000 series" "rs=eSCL" "representation=images/printer.png" "vers=2.63" "UUID=9dddcf7d-2ef9-51a5-8be4-be1e5e3ebfc2" "note=" "adminurl=http://HP3822E2B68C8C.local." "txtvers=1"]
= wlp1s0 IPv6 HP ENVY 6000 series [B68C8C] _uscan._tcp local
hostname = [HP3822E2B68C8C.local]
address = [192.168.1.190]
port = [8080]
txt = ["mopria-certified-scan=1.2" "duplex=F" "is=platen" "cs=binary,color,grayscale" "pdl=application/octet-stream,application/pdf,image/jpeg" "ty=HP ENVY 6000 series" "rs=eSCL" "representation=images/printer.png" "vers=2.63" "UUID=9dddcf7d-2ef9-51a5-8be4-be1e5e3ebfc2" "note=" "adminurl=http://HP3822E2B68C8C.local." "txtvers=1"]
输出示例driverless
:
➜ ~ driverless
ipp://HP%20ENVY%206000%20series%20%5BB68C8C%5D._ipp._tcp.local/
输出示例lpstat -l -e
:
➜ ~ lpstat -l -e
HP_ENVY_6000_series_B68C8C_ permanent ipp://localhost/printers/HP_ENVY_6000_series_B68C8C_ implicitclass://HP_ENVY_6000_series_B68C8C_/
- 使用前面命令中的信息设置无驱动打印机。
运行的命令是:
lpadmin -p [PRINTER-NAME] -v [URI] -E -m everywhere
PRINTER-NAME 仅替换为您想要提供的名称。
该 URI 将替换为打印机的 URI。有两种方法可以实现此目的。您可以使用该命令的输出driverless
。这最初对我有用,直到我重新启动计算机,然后它停止工作。另一种选择是使用avahi-browse
格式中的命令中列出的 IPipp://[IP]/ipp/print
来指向打印机的确切位置。可以通过登录路由器来双重检查该 IP。完整命令示例:
➜ ~ lpadmin -p envy6000 -v ipp://192.168.1.190:631/ipp/print -E -m everywhere
- 打印测试页以确保其正常工作
➜ ~ lp -d envy6000 /etc/nsswitch.conf
应该是这样。现在应该可以通过所有程序进行打印,并可以在打印机对话框中找到它。