温馨提示×

Ubuntu 上如何安装 Python 的 GUI 库

小樊
44
2025-11-10 22:31:39
栏目: 编程语言

Ubuntu 上安装 Python GUI 库的常用方法

在 Ubuntu 上开发 Python 图形界面(GUI)应用时,可选择多种工具库,涵盖标准内置、第三方 pip 安装及系统包管理器等方式。以下是常见 GUI 库的安装步骤及注意事项:

1. Tkinter(Python 标准 GUI 库)

Tkinter 是 Python 内置的轻量级 GUI 库,适合快速开发简单桌面应用(如工具窗口、配置面板)。多数 Ubuntu 发行版已预装,但可通过以下命令确认或安装:

# 检查 Tkinter 是否安装(若弹出测试窗口则表示已安装)
python3 -m tkinter

# 若未安装,通过 apt 安装
sudo apt update
sudo apt install python3-tk

示例代码(创建带标签和按钮的窗口):

import tkinter as tk

root = tk.Tk()
root.title("Tkinter 示例")
label = tk.Label(root, text="Hello, Tkinter!")
label.pack(pady=10)
button = tk.Button(root, text="点击我", command=lambda: label.config(text="按钮被点击了!"))
button.pack()
root.mainloop()

2. PyQt5/PySide6(功能强大的跨平台库)

PyQt5 是 Riverbank Computing 开发的商业/开源库(PyQt6 为最新版),提供丰富的组件(如表格、树形视图)和 Qt Designer 可视化设计工具;PySide6 是 Qt 官方的开源替代,许可证更宽松(LGPL)。两者安装方式类似:

# 通过 pip 安装 PyQt5(推荐最新版)
pip3 install --upgrade pip
pip3 install PyQt5

# 或安装 PySide6(官方替代)
pip3 install PySide6

示例代码(PyQt5 创建主窗口):

from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QVBoxLayout, QWidget
import sys

app = QApplication(sys.argv)
window = QMainWindow()
window.setWindowTitle("PyQt5 示例")
central_widget = QWidget()
layout = QVBoxLayout()
label = QLabel("Hello, PyQt5!")
layout.addWidget(label)
central_widget.setLayout(layout)
window.setCentralWidget(central_widget)
window.show()
sys.exit(app.exec_())

3. Kivy(跨平台多点触控库)

Kivy 专注于移动端和多点触控应用(如手机游戏、平板工具),支持 Windows、macOS、Linux、Android、iOS 等平台。通过 pip 安装即可:

pip3 install kivy

示例代码(Kivy 创建带按钮的界面):

from kivy.app import App
from kivy.uix.button import Button

class MyApp(App):
    def build(self):
        return Button(text="Hello, Kivy!", size_hint=(0.5, 0.3), pos_hint={'center_x': 0.5, 'center_y': 0.5})

MyApp().run()

4. wxPython(跨平台原生界面库)

wxPython 基于 C++ 的 wxWidgets 框架,提供原生外观的控件(如 Windows 的原生按钮、macOS 的原生菜单),适合需要贴近系统风格的应用:

# 通过 pip 安装最新版
pip3 install wxPython

# 或通过 apt 安装(版本可能较旧)
sudo apt update
sudo apt install python3-wxgtk4.0

示例代码(wxPython 创建带文本框的窗口):

import wx

app = wx.App(False)
frame = wx.Frame(None, wx.ID_ANY, "wxPython 示例", size=(300, 200))
panel = wx.Panel(frame, wx.ID_ANY)
label = wx.StaticText(panel, wx.ID_ANY, "Hello, wxPython!", pos=(50, 50))
frame.Show(True)
app.MainLoop()

5. GTK+3(GNOME 桌面原生库)

GTK+3 是 Ubuntu GNOME 桌面的默认 GUI 工具包,PyGObject 是其 Python 绑定,适合开发符合 GNOME 设计规范的本地应用:

sudo apt update
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0

示例代码(GTK+3 创建带标签的窗口):

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="GTK+3 示例")
        self.set_default_size(200, 100)
        label = Gtk.Label(label="Hello, GTK+3!")
        self.add(label)

win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()

安装注意事项

  • 优先选择系统包管理器(如 apt)安装的库(如 python3-tkpython3-gi),稳定性更高且易于维护;
  • pip 安装的库(如 PyQt5、Kivy)需确保 Python 环境正确(建议使用虚拟环境 venv 避免冲突);
  • Kivy 的额外依赖:若安装时提示缺少 SDL2、GStreamer 等库,可通过 sudo apt install python3-kivy[base,media] 安装完整依赖;
  • 版本兼容性:部分库(如 PyQt5)需与 Python 版本匹配(如 Python 3.7+),建议使用 Python 3.8 及以上版本。

0