WSL2下的PyQt5报错XCB找不到

前言

最近在WSL2上搬点砖,结果报xcb错误。

$ python test.py
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.

Aborted

搜索了一篇文章:在Ubuntu(WSL2)上使用PyQt5时,GUI周围出现错误,写得比较清楚了。

略微有几个细节,记一下,免得下次找。

过程

整个过程与原Po的文章基本一样。

  1. export QT_DEBUG_PLUGINS=1
  2. ldd /path-to-lib/libqxcb.so | grep "not found"
  3. sudo apt install libxxxx0 libxxxx1

QT插件

QT的很多功能使用插件来实现的,也就是利用动态链接库实现特定功能的一种方式。

在插件开发时,声明一个接口,并把接口注册到QObject体系中。

ldd

ldd的帮助页上写:ldd - print shared object dependencies。

也就是列出动态链接库的依赖项。

例如名字libxcb-icccm.so.4对应的库就是libxcb-icccm4

最后那个数字就是版本号。

原文里面有0,1,4等。

安装的时候可以一次性安装。

结论

不要用WSL……直接装原生。

<think>好的,用户遇到了WSL2安装时路径不到的问题,需要解决方案。首先,我需要回忆一下相关的知识和之前用户提供的引用内容。用户提到他们在使用WSL2时遇到了路径问题,并且之前有关于代理配置和开发环境的问题。可能的解决方案包括检查系统要求、安装步骤是否正确,以及可能的路径配置问题。 首先,用户可能没有正确启用WSL功能。根据微软的文档,安装WSL2前需要在Windows中启用“适用于Linux的Windows子系统”和“虚拟机平台”功能。这可能通过PowerShell命令启用,比如dism.exe命令。如果这些功能没有启用,安装时可能会遇到路径错误。 其次,用户可能没有将WSL2设置为默认版本。即使安装了WSL,如果默认版本还是WSL1,某些路径或功能可能不兼容。需要使用命令`wsl --set-default-version 2`来设置默认版本。 另外,用户可能在安装过程中指定的路径不存在或者权限不足。比如,使用`--import`参数时,指定的安装目录可能需要提前创建,并且有足够的权限。需要确保目标路径存在,并且用户有写入权限。 还有可能用户下载的发行版文件有问题,或者安装过程中网络问题导致文件不完整。这时候重新下载或使用不同的源可能有效。另外,检查系统更新,确保Windows版本支持WSL2,比如版本19041或更高。 用户提到的引用中,有一个提到NAT模式下的WSL不支持localhost代理,这可能和网络配置有关,但路径问题可能更多是安装步骤或系统配置的问题。需要引导用户逐步检查这些方面,并提供具体的命令行操作示例,比如启用功能、设置默认版本、手动指定安装路径等。 最后,建议用户查看官方文档或社区支持,如果问题依旧存在,可能需要更详细的错误信息来进一步诊断。例如,用户遇到的错误信息是什么,是否在特定步骤出现,这些都能帮助缩小问题范围。</think>### WSL2安装路径未到的解决方案 #### 1. 确认系统要求 首先确保Windows 10版本为**19041及以上**或Windows 11。可通过`winver`命令查看系统版本[^1]。 #### 2. 启用WSL功能 以管理员身份运行PowerShell,执行: ```powershell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` 重启系统后执行: ```powershell wsl --set-default-version 2 ``` #### 3. 手动指定安装路径 当使用`wsl --import`命令时,需提前创建目标目录: ```powershell # 示例:在D盘创建WSL目录 mkdir D:\WSL\Ubuntu wsl --import Ubuntu D:\WSL\Ubuntu Ubuntu.tar ``` #### 4. 处理路径权限问题 - 确保目标驱动器有足够空间 - 右键目标目录 → 属性 → 安全 → 添加当前用户并赋予完全控制权限 #### 5. 重新安装WSL 若已损坏,可尝试: ```powershell wsl --unregister Ubuntu wsl --install -d Ubuntu ``` #### 6. 检查系统更新 通过Windows Update安装最新补丁,特别是内核更新包[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大福是小强

除非你钱多烧得慌……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值