在 CentOS 上进行 Python 图形界面开发
一 环境准备与显示方式
sudo dnf install -y python3 python3-pip python3-venvpython3 -m venv venv && source venv/bin/activate二 常用方案与快速上手
sudo dnf install -y python3-tkinterpython3 -c "import tkinter; print(tkinter.TkVersion)"import tkinter as tk; root = tk.Tk(); root.title("Hello"); tk.Label(root, text="Hi").pack(); root.mainloop()pip install PyQt5(或 PySide2)sudo dnf install -y qt5-qtbase-gui 等,视仓库而定)。import sys; from PyQt5.QtWidgets import QApplication, QWidget, QLabel; app=QApplication(sys.argv); w=QWidget(); QLabel("Hello", parent=w).move(50,50); w.show(); sys.exit(app.exec_())pip install kivyfrom kivy.app import App; from kivy.uix.label import Label; class MyApp(App): def build(self): return Label(text="Hello Kivy"); MyApp().run()pip install eelweb/index.html 与 main.pyimport eel; eel.init('web'); eel.start('index.html', size=(800,450))三 部署与运行要点
-X(或 -Y)后直接运行 GUI 程序。Xvfb :99 -screen 0 1024x768x24 & 设置虚拟帧缓冲,再 export DISPLAY=:99 运行程序。pyinstaller app.py),注意将平台相关依赖一并打包。sudo dnf install -y wqy-zenhei wqy-microhei),并在程序内设置合适的字体家族,避免乱码。四 方案选择建议
| 方案 | 学习成本 | 外观与体验 | 跨平台 | 典型场景 |
|---|---|---|---|---|
| Tkinter | 低 | 朴素原生 | 是 | 工具脚本、内部小工具 |
| PyQt5/PySide2 | 中-高 | 现代、可定制性强 | 是 | 复杂桌面应用、企业系统 |
| Kivy | 中 | 触控友好、现代 | 是(含移动) | 触控应用、跨平台发布 |
| Web 技术(Eel) | 中 | 前端生态、灵活 | 是 | 前端主导、快速迭代 |
| wxPython | 中 | 原生风格 | 是 | 追求本地外观的桌面应用 |