Ubuntu安装PySide6开发桌面应用实践

 更新时间:2026年04月23日 10:08:45   作者:Pisces_224  
文章介绍了在Ubuntu非桌面端安装PySide6并使用WSL2在Windows上开发Python桌面应用的全过程,首先,通过wS安装基础工具并用使用pip安装PySide6,接着,在WindowsD安装VSCode并配置WSL支持支持GUI显示,最后D在WSL中开发Python桌面应用

一、引言

最近接触了python相关方向的任务,需要开发一个桌面应用对接大模型做测试。于是有了这篇。

二、Ubuntu非桌面端安装PySide6

本来嘛,ubuntu桌面系统直接安装PySide6,再装一个vscode就行,无奈手头只有一台windows,暂时先通过 wsl2来模拟跑一下。

2.1、wsl2 Ubuntu安装基础工具

首先安装pip:

sudo apt update
sudo apt install python3-pip

之后,通过pip安装 PySide6:

pip3   install PySide6
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

原因是Ubuntu系统 为了保护系统 Python 环境,禁止直接用 pip 安装全局包,这是 Python PEP 668 规范的安全限制。

其实就是推荐你先 设个虚拟环境,再 安装。

# 1. 创建虚拟环境(指定存放路径,比如 ~/pyside6_venv)
python3 -m venv ~/pyside6_venv
# 2. 激活虚拟环境(每次使用前都需要执行)
source ~/pyside6_venv/bin/activate

创建虚拟环境报错:

python3 -m venv ~/pyside6_venvThe virtual environment was not created successfully because ensurepip is notavailable.  On Debian/Ubuntu systems, you need to install the python3-venvpackage using the following command.

    apt install python3.12-venv

You may need to use sudo with that command.  After installing the python3-venvpackage, recreate your virtual environment.

Failing command: /home/iqos/pyside6_venv/bin/python3​

原因是我的Ubuntu系统缺少创建 Python 虚拟环境必需的 python3.12-venv 包。需要先安装这个 。

sudo apt install python3.12-venv  -y

之后再创建并激活虚拟环境即可。

接下来安装 PySide6:

pip install PySide6
Collecting PySide6
  Downloading pyside6-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (5.3 kB)
Collecting shiboken6==6.10.2 (from PySide6)
  Downloading shiboken6-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (2.5 kB)
Collecting PySide6_Essentials==6.10.2 (from PySide6)
  Downloading pyside6_essentials-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (3.7 kB)
Collecting PySide6_Addons==6.10.2 (from PySide6)
  Downloading pyside6_addons-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (4.0 kB)
Downloading pyside6-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl (563 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 563.4/563.4 kB 979.5 kB/s eta 0:00:00
Downloading pyside6_addons-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl (170.7 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 170.7/170.7 MB 172.0 kB/s eta 0:00:00
Downloading pyside6_essentials-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl (77.0 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.0/77.0 MB 136.9 kB/s eta 0:00:00
Downloading shiboken6-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl (273 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 273.1/273.1 kB 26.2 kB/s eta 0:00:00
Installing collected packages: shiboken6, PySide6_Essentials, PySide6_Addons, PySide6
Successfully installed PySide6-6.10.2 PySide6_Addons-6.10.2 PySide6_Essentials-6.10.2 shiboken6-6.10.2

到这一步就安装结束了。接下来是安装Windows版的VSCode,然后配置wsl来开发。

2.2、windows下安装VSCode

2.2.1、第一步:配置 WSL 支持 GUI 显示

# 在 WSL 终端执行
wsl --version  # 查看版本,确保有 WSLg 相关信息
wsl -l -v      # 检查 Ubuntu 发行版的版本是 2

如果版本是 1,执行 wsl --set-version Ubuntu 2 切换到 WSL 2(需等待几分钟)。

2.2.2、第二步: 安装 WSL 所需的 GUI 依赖(Ubuntu 端)

即使有 WSLg,也需要安装基础的 X11 依赖才能运行 Qt 程序:

sudo apt update
sudo apt install -y libx11-6 libxcb1 libxkbcommon-x11-0 libgl1-mesa-glx

这里出现错误:

E: Package 'libgl1-mesa-glx' has no installation candidate

libgl1-mesa-glx 是 OpenGL 渲染依赖,Ubuntu 22.04 LTS 及以上版本中,这个包已被 libgl1-mesa-dri + libgl1 替代,直接安装会提示找不到,我们换一套兼容所有 Ubuntu 桌面版本的依赖安装命令即可。

直接安装通用的依赖即可:

sudo apt update && sudo apt install -y \
    python3-pip \
    python3-venv \
    libx11-6 \
    libxcb1 \
    libxkbcommon-x11-0 \
    libgl1 \
    libgl1-mesa-dri \
    libqt6gui6 \
    libqt6core6 \
    libqt6widgets6

2.2.3、第三步: 验证 GUI 功能(可选)

安装一个简单的 GUI 工具测试:

sudo apt install -y x11-apps
xeyes  # 运行后会在 Windows 桌面弹出一个眼睛跟随鼠标的窗口,说明 GUI 配置成功

2.2.4、安装Windows 端 VSCode 连接 WSL 开发

1.安装 Windows 版 VSCode

  • 从 VSCode 官网 下载 Windows 版并安装(不是 Ubuntu 端的 VSCode)。

2.安装 中文语言包

  • 打开 Windows 端 VSCode → 扩展面板(Ctrl+Shift+X)→ 搜索并安装 Chinese (Simplified) (简体中文) Language(微软官方插件)。安装完重启应用中文

3.安装 WSL 插件

  • 打开 Windows 端 VSCode → 扩展面板(Ctrl+Shift+X)→ 搜索并安装 Remote - WSL(微软官方插件)。

4.连接 WSL 环境

  • 安装完成后,点击 VSCode 左下角的「><」图标 → 选择「New WSL Window using Distro…」→ 选择你的 Ubuntu 发行版。
  • 此时会打开一个新的 VSCode 窗口,标题栏显示「WSL: Ubuntu」,说明已连接到 WSL 环境。

点击左侧的 打开文件夹…,或者按快捷键 Ctrl+K Ctrl+O,在弹出的对话框中选择 WSL 里的项目目录(例如 ~/pyside6_demo)。

如果没有,输入~,回车打开ubuntu内文件夹列表,左侧边栏 点击新建项目目录。

然后进入目录下,新建一个main.py,输入示例代码,点击 左上方右侧…中的运行,结果提示:

示例代码:

import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QVBoxLayout, QWidget

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("WSL PySide6 测试")
        self.setFixedSize(400, 200)
        
        central = QWidget()
        self.setCentralWidget(central)
        layout = QVBoxLayout(central)
        
        self.label = QLabel("Hello WSL + PySide6!")
        layout.addWidget(self.label)
        
        btn = QPushButton("点击我")
        btn.clicked.connect(lambda: self.label.setText("Windows 显示 WSL 窗口!"))
        layout.addWidget(btn)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MainWindow()
    win.show()
    sys.exit(app.exec())

  • 点击弹窗中的 查找 Python 扩展 (F),或者按 Ctrl+Shift+X 打开扩展面板。
  • 在扩展面板的搜索框中输入 Python,找到微软官方的 Python 扩展。
  • 此时扩展按钮会显示为 在 WSL:Ubuntu 中安装,点击它进行安装。
  • 安装完成后,VSCode 会提示你重新加载窗口,点击确认。

该截图是默认的python解释器。而我们前面已经安装了python3到虚拟环境。所以此处快捷键Ctrl+Shift+p调出查找框:

之后,选择我们安好的 解释器 :

此时,示例代码终于依赖可用了。

运行后,windows桌面下出现该实例代码的输出:

ok,基本流程到此结束。后续可以开发了。

三、Ubuntu桌面系统开发

这里就不细说了,很简单,时间问题后续有空写点儿。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python tkinter中label控件动态改变值问题

    Python tkinter中label控件动态改变值问题

    这篇文章主要介绍了Python tkinter中label控件动态改变值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Python绘制浪漫星空的示例代码

    Python绘制浪漫星空的示例代码

    Python的turtle是一个基于tkinter的Python图形库,可以帮助初学者轻松地理解和绘制图形,本文就来通过turtle绘制一个浪漫的星空动画吧
    2023-09-09
  • Python Pywinauto轻松实现Windows桌面自动化详解

    Python Pywinauto轻松实现Windows桌面自动化详解

    pywinauto这个Python库可以让你像魔法师一样操控Windows GUI,轻松模拟鼠标键盘操作,自动化Notepad,Excel甚至企业级软件,下面小编就来和大家详细介绍一下它的使用吧
    2025-05-05
  • python用类实现文章敏感词的过滤方法示例

    python用类实现文章敏感词的过滤方法示例

    这篇文章主要介绍了python用类实现文章敏感词的过滤方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • python实现对文件进行MD5校验

    python实现对文件进行MD5校验

    这篇文章主要为大家详细介绍了如何使用python对文件进行MD5校验并比对文件重复,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • 跟老齐学Python之编写类之二方法

    跟老齐学Python之编写类之二方法

    上一讲中创建了类,并且重点讲述了构造函数以及类实例,特别是对那个self,描述了不少。在讲述构造函数的时候特别提到,init()是一个函数,只不过在类中有一点特殊的作用罢了,每个类,首先要运行它,它规定了类的基本结构。
    2014-10-10
  • Python 中的Selenium异常处理实例代码

    Python 中的Selenium异常处理实例代码

    本文通过实例代码给大家介绍了Python 中的Selenium异常处理的相关知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • python 计算平均平方误差(MSE)的实例

    python 计算平均平方误差(MSE)的实例

    今天小编就为大家分享一篇python 计算平均平方误差的实例 (MSE),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python web如何在IIS发布应用过程解析

    Python web如何在IIS发布应用过程解析

    这篇文章主要介绍了Python web如何在IIS发布应用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python logging模块详细教程与最佳实践

    Python logging模块详细教程与最佳实践

    本文详细介绍了Python的logging模块,从基础概念到高级用法,包括日志级别、格式、处理器、记录器等通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2026-01-01

最新评论