本项目需要用到Qt,Samba以及私有云系统NextCloud,本篇文章对这三者进行环境配置

一.PyQt5

基于python开发GUI程序有很多库可以选择,例如以下几个 :

  • PyQt5:Qt是一个跨平台的 C++图形用户界面库。QT一度被诺基亚拥有,后出售给芬兰的软件公司Digia Oyj。PyQt5是基于Digia公司Qt5的Python接口,由一组Python模块构成。PyQt5本身拥有超过620个类和6000函数及方法。在可以运行于多个平台,包括:Unix, Windows, and Mac OS。
  • Pyside6:Pyside是QT公司官方提供的Python包,上一版本为Pyside2,对应的是QT5,最新版命名规则进行了调整,更改为Pyside6,对应的是QT6版本。由于官方出品的比较看好,缺点是发布比较晚,网上的资料没有PyQt5多。
  • Tkinter:Python内置的GUI框架,使用TCL实现,Python中内嵌了TCL解释器,使用它的时候不用安装额外的扩展包,直接import,跨平台。不足之处在于UI布局全靠代码实现,只有15种常用部件,显示效果简陋。
  • Kivy:主要针对多点触控程序,智能手机平板等,也可以在没有触屏功能的系统上,全平台支持(Windows, Linux, Mac OS X, Android and iOS.)使用Python和cython编写,中文支持差,需要自己下载中文库并且制定路径。
  • BeeWare:一组用于帮助开发、调试和运行Python软件的工具和库的集合,能够帮助开发人员编写跨平台的本机GUI Python应用程序。
  • Toga:一个使用Python开发原生APP的GUI工具包。Toga由一个具有共享接口的基础组件库组成,以简化与平台无关的GUI开发。Toga适用于Mac OS、Windows、Linux(GTK)以及Android和iOS等移动平台。
  • Eel:一个轻量的python桌面GUI开发第三方库。 Eel实际上是启动了一个本地的web服务器, 它允许你将python的函数暴露给javascript, 所以网页端也能调用python函数。使用HTML/JS作为界面开发语言, 但是能够访问所有的python功能, 类似于electron, 但是比它轻量。
  • Flexx:一个纯 Python 工具包,用来创建图形化界面应用程序。其使用 Web 技术进行界面的渲染。你可以用 Flexx 来创建桌面应用,同时也可以导出一个应用到独立的 HTML 文档。因为使用纯 Python 开发,所以 Flexx 是跨平台的。只需要有 Python 和浏览器就可以运行。
  • pywebview:围绕 webview 组件的轻量型跨平台包装器(wrapper),它允许在其自己的本机 GUI 窗口中显示 HTML 内容。
  • enaml:一种能够让你用最小的努力就可以实现高质量GUI界面的的Python框架,也是一种独特的编程语言。enaml将声明性语言与基于约束的布局系统结合在一起,使用户可以轻松地定义灵活布局的UI。enaml应用程序可以在任何支持Python和Qt的平台上运行。


在这里我们选择PyQt5进行人脸识别系统的GUI程序开发。

PyQt5是一套Python绑定Digia QT5应用的框架。它可用于Python 2和3。Qt库是最强大的GUI库之一。这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括UNIX,Windows,Mac OS。

1.安装PyQt5

安装PyQt5有两种方式,一种方式是使用pip命令在线安装,另一种方式是通过官方下载文件安装

使用pip命令在线安装的步骤如下:

打开cmd窗口

  • 使用pip工具安装PyQt5工具。执行pip install PyQt5
  • 安装常用的Qt工具。执行pip install PyQt5-tools

通过官方下载文件安装的步骤如下:

PyQt5工具:

下载地址:PyQt下载

安装方法:打开命令行,通过命令行进入到下载的whl文件所在的文件夹,使用如下命令,安装即可

pip install ×××.whl

常用的Qt工具:

下载地址:点击下载PyQt5-tools

下载完成后,使用 pip 命令安装。

pip install ×××.whl

在这里需要注意的是PyQt5的版本和PyQt5-tools的版本的兼容问题

安装完成后,输入pip show PyQt5,如果返回信息如下则证明PyQt5安装完成

遇到的问题:安装过程中报错python pip3 install “ERROR: Command errored out with exit status 1“

解决方法:旭日X3派预装的Python版本为3.8.10,而PyQt5的最新版本5.15.9并不兼容3.8.10的Python版本,因此安装5.14.1版本的PyQt5即可解决该问题

二. Samba

Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。SMB 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB 协议是 C/S 型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

下载Samba

sudo apt-get install samba

在这里输入y

在终端中输入samba -V,如果出现samba的版本号则说明已经安装了samba服务器

samba的环境配置将在后续的文章中说明

三. NextClound

Nextcloud是一个可以私人搭建的网盘,可以提供在线缩略图、在线播放视频、webdav等许多强大的功能,配合电脑端程序可以实现文件同步,配合手机端app可以随时随地的上传与取回重要文件与照片。

nextcloud安装

首先在Ubuntu系统上安装Snap,只要输入两行命令就可以进行snap的安装

sudo apt-get install snapd

sudo apt-get install snapcraft

接着,在输入安装Nextcloud的命令

sudo snap install nextcloud

命令输入后,snap会自动下载软件并安装。

为了确认安装是否成功,我们可以输入查询更改的命令,并通过反馈看到nextcloud是否安装完成。

snap changes nextcloud

安装完成后,我们可以输入命令,来启动或关闭nextcloud。

启动: sudo snap start nextcloud
停止: sudo snap stop nextcloud