WSL环境安装PySide6后导入模块报libQt6Core.so.6缺失如何解决
问题说明
- PySide6安装返回成功提示:
Successfully installed pyside6-6.2.4 shiboken6-6.2.4,运行Hello World示例失败 - 执行导入语句
from PySide6 import QtCore, QtWidgets, QtGui触发导入错误,报错日志:
Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: libQt6Core.so.6: cannot open shared object file: No such file or directory
- 运行环境参数:
- Python版本:
3.8.10 - 已安装PySide6版本:
6.2.4 - 系统环境:WSL,Linux内核版本
4.4.0-19041-Microsoft
- Python版本:
排查解决步骤
1. 安装缺失的系统级GUI依赖
当前WSL环境默认不带Qt6运行所需的系统依赖,先执行命令安装基础库(适用于Ubuntu/Debian系WSL发行版):
sudo apt update sudo apt install libqt6core6 libqt6gui6 libqt6widgets6 libgl1-mesa-glx libxkbcommon0 libdbus-1-3
如果执行时提示找不到
libqt6*相关包,说明当前WSL内的发行版版本过低(Ubuntu 20.04及更早版本默认源不含Qt6包),两个选择:要么升级发行版到Ubuntu 22.04及以上,要么卸载当前PySide6换装6.1.x及更早版本(适配Qt5依赖)。
2. 将PySide6自带动态库加入系统搜索路径
pip安装PySide6时自带对应版本的Qt动态库,很多时候不会自动注册到系统动态库搜索路径,按以下操作配置:
- 先查询PySide6的实际安装路径,在Python交互环境执行:
import os, PySide6 print(os.path.dirname(PySide6.__file__))
- 将上一步输出的路径写入系统动态库配置,比如输出路径为
/home/yourname/.local/lib/python3.8/site-packages/PySide6,则执行:
echo "/home/yourname/.local/lib/python3.8/site-packages/PySide6" | sudo tee /etc/ld.so.conf.d/pyside6.conf sudo ldconfig
- 重启终端后重新执行导入语句测试。
3. WSL环境专属适配
如果前两步操作后仍报错,是低版本WSL的GUI兼容问题:
- 优先升级到WSL2+WSLg:在Windows端打开管理员权限的PowerShell,执行:
wsl --update wsl --set-version <你安装的WSL发行版名称> 2
执行完成后重启WSL即可,不需要额外配置X服务器。
- 暂时无法升级WSL版本的话,先在Windows端安装Xserver工具,之后在WSL的
~/.bashrc文件末尾追加两行配置:
export DISPLAY=:0.0 export LD_LIBRARY_PATH=<上一步查到的PySide6安装路径>:$LD_LIBRARY_PATH
执行source ~/.bashrc使配置生效后再测试。
临时运行方案
不想修改全局系统配置的话,每次运行PySide6程序前手动指定动态库路径即可:
export LD_LIBRARY_PATH=$(python -c "import os, PySide6; print(os.path.dirname(PySide6.__file__))"):$LD_LIBRARY_PATH python your_script.py
内容的提问来源于stack exchange,提问作者Leo Dai
相关产品推荐
相关产品推荐

