我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
PyQt5_环境配置
关于Python的一些知识了解
python 版本
- Python 版本指的是 Python 解析器本身的版本。由于 Python3 不能与 Python2 兼容,而且两大阵营之争持续了很长时间,导致一些软件库需要设配两种版本的 Python,同时开发者可能需要在一个环境中,部署不同版本的 Python,对开发和维护造成了麻烦。因此出现了版本管理器 Pyenv,类似于 nodejs 的 nvm,可以创建出相互隔离的 Python 环境,并且可以方便的切换环境中的 Python 版本,但和 Python 虚拟环境关系不大
python 包库
- 包库或者叫软件源是 Python 第三方软件的库的集合,或者市场,可以发布、下载和管理软件包,其中 pypi (Python Package Index) https://pypi.org/ 是官方指定的软件包库,基于其上的 pip 工具就是从这里查找、下载安装软件包的。为了提高下载速度,世界上有很多 Pypi 的镜像服务器,在国内也有多个软件源,例如阿里的软件源是:http://mirrors.aliyun.com/pypi/simple/。除此之外,还有其他软件源,如正对科学计算的 anaconda 的软件源 https://repo.anaconda.com/
python 包管理器
- 软件包源中的软件包数量巨大,版本多样,所以需要借助于软件源管理工具,例如 pip、conda、Pipenv、Poetry 等
- pip 是最常用的包管理工具,通过 pip install 命令格式来安装软件包,使用的是 pypi 软件包源
- conda 多用作科学计算领域的包管理工具,功能丰富且强大,使用的软件包源是 Anaconda repository 和 Anaconda Cloud,conda 不仅支持 Python 软件包,还可以安装 C、C++ 、R 以及其他语言的二定制软件包。除了软件包管理外,还能提供相互隔离的软件环境。
- Pipenv 是 Kenneth Reitz 在2017年1月发布的Python依赖管理工具,现在由PyPA维护。Pipenv 会自动帮你管理虚拟环境和依赖文件,并且提供了一系列命令和选项来帮助你实现各种依赖和环境管理相关的操作
- Poetry 和 Pipenv 类似,是一个 Python 虚拟环境和依赖管理工具,另外它还提供了包管理功能,比如打包和发布。你可以把它看做是 Pipenv 和 Flit 这些工具的超集。它可以让你用 Poetry 来同时管理 Python 库和 Python 程序
- 很多包管理工具不仅提供了基本的包管理功能,还提供了虚拟环境构建,程序管理的等功能
Python 虚拟环境
- Python 应用经常需要使用一些包第三方包或者模块,有时需要依赖特定的包或者库的版本,所以不能有一个能适应所有 Python 应用的软件环境,很多时候不同的 Python 应用所依赖的版本是冲突的,满足了其中一个,另一个则无法运行,解决这一问题的方法是 虚拟环境。虚拟环境是一个包含了特定 Python 解析器以及一些软件包的自包含目录,不同的应用程序可以使用不同的虚拟环境,从而解决了依赖冲突问题,而且虚拟环境中只需要安装应用相关的包或者模块,可以给部署提供便利
构建虚拟环境
- 原理
- 虚拟环境并不是什么新技术,主要是利用了操作系统中环境变量以及进程间环境隔离的特性
- 操作系统的环境变量可以为程序提供信息和做信息交换介质,进程可以共享操作系统中的环境变量,也可以为进程指定环境变量,其中 PATH 是很重要的环境变量,用于为操作系统和程序提供可执行文件的访问路径,例如写一个程序 a.exe,存放在 D:\MyProgram 中,在命令行中执行 a.exe ,会得到提示“ 无法找到程序 a.exe”,为了让系统找到,可以将 D:\MyProgram 路径加入到 PATH 环境变量中,当输入 a.exe 时,操作系统就会从 PATH 所提供的路径中逐个查找,这时就可以找到了。Linux 和 MacOS 具有相似的特性,甚至比 Windows 的功能更丰富。
- Python 虚拟环境就是利用这个特性构建的,在激活虚拟环境之时,激活脚本会将当前命令行程序的 PATH 修改为虚拟环境的,这样执行命令就会在被修改的 PATH 中查找,从而避免了原本 PATH 可以找到的命令,从而实现了 Python 环境的隔离。
- 为了让开发容易区分当前环境是否虚拟环境以及是那个虚拟环境,命令提示符前会加上特殊标记,例如:
环境配置
虚拟环境
什么是虚拟环境
- python的虚拟环境类似于虚拟机,能够创建一个独立的python运行环境,虚拟环境中的安装的第三方依赖包和全局环境中的包相互独立。
- 配置环境是基于项目级别的,Pycharm对每一个项目都有一个虚拟环境,项目之间隔离开
- 虚拟环境的优点:
1. 不同的虚拟环境相互独立,不会影响到其他应用。 2. 防止出现包管理混乱和版本冲突。 3. 不会影响全局的python环境。
创建虚拟环境
安装第三方库
- 我们学习的Python GUI图形界面是通过PyQt5第三方库来实现的,所以需要手动安装第三方库
- 方法一:通过
pip
命令安装- 1、 安装 PyQt5
- 我们需要用到的pyuic5(ui文件转py文件)工具和pyrcc5(资源文件转py文件)工具都在这个模块中
- 通过PyCharm —— Terminal激活虚拟环境,然后安装
pip install PyQt5
- 2、(已过时)安装辅助工具:pyqt5-tools
- 课程中通过安装pyqt5-tools获取designer工具
- 但是我用的python3.9的版本中,designer工具已经不在pyqt5-tools模块中了,在pySide2模块中,所以我们需要安装PySide2模块
pip install pyqt5-tools
- 3、安装 PySide2
- 我们需要用到的designer工具在这个模块中
pip install PySide2
- 我们需要用到的designer工具在这个模块中
- 1、 安装 PyQt5
- 方法二:通过PyCharm的Setings配置安装
-
注意:使用该方法安装第三方库,需要先修改安装源为国内镜像源,否则安装时间非常长
-
国内镜像源
清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/ 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/ 华中科技大学:http://pypi.hustunique.com/ 豆瓣源:http://pypi.douban.com/simple/ 腾讯源:http://mirrors.cloud.tencent.com/pypi/simple 华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/
-
修改安装源
PyCharm —— File —— Setings —— Project:xxx —— Python Interpreter
-
安装第三方库
PyCharm —— File —— Setings —— Project:xxx —— Python Interpreter
-
安装PyQt5
-
安装PySide2
-
当安装界面下面显示
Package 'xxxxxx' installed successfully
则表示安装成功了 -
我这里就不安装pyqt5-tools了
-
-
PyCharm添加外部工具快捷方式
- 1、添加图形界面设计工具 QtDesigner
-
File —— Settings —— Tools —— External Tools —— “+”
-
Name: # 外部工具显示名称 Description: # 对外部工具的描述 Program: # 外部工具名称关联工具,也就是点击名称要打开的工具 Arguments: # 转换参数 Working directory: # 默认保存目录。就是.ui文件保存目录 $ProjectFileDir$ # 项目文件所在目录
-
- 2、添加ui文件转py文件工具 pyuic5
-
File —— Settings —— Tools —— External Tools —— “+”
-
Name: # 外部工具显示名称 Description: # 对外部工具的描述 Program: # 外部工具名称关联工具,也就是点击名称要打开的工具 Arguments: # 转换参数 Working directory: # 默认保存目录。就是生成的.py文件保存目录 # 参数说明 $FileName$ -o $FileNameWithoutExtension$_ui.py -x $FileName$ # 原文件名(带扩展名) -o # 输出到指定文件中 $FileNameWithoutExtension$ # 不带扩展名的原文件名 -x # 如果添加了,转换成py文件时,会生成__main__函数 $FileDir$ # 当前文件所在目录
-
- 3、添加qrc资源文件转py文件工具 pyrcc5
-
File —— Settings —— Tools —— External Tools —— “+”
-
Name: # 外部工具显示名称 Description: # 对外部工具的描述 Program: # 外部工具名称关联工具,也就是点击名称要打开的工具 Arguments: # 转换参数 Working directory: # 默认保存目录。就是生成的.py文件保存目录 # 参数说明 $FileName$ -o $FileNameWithoutExtension$_rc.py $FileName$ # 原文件名(带扩展名) -o # 输出到指定文件中 $FileNameWithoutExtension$ # 不带扩展名的原文件名 $FileDir$ # 当前文件所在目录
-
使用外部工具
-
图形化界面环境配置完成。接下来就可以直接使用图形化界面创建窗体了
-
方式一:Tools —— External Tools —— QTDesigner
-
方式二:项目 —— 鼠标右键 —— External Tools —— QTDesigner
-
打开界面如图
创建第一个窗体
- 用代码创建第一个窗体
from PyQt5.Qt import * from PyQt5.QtGui import QIcon import sys # 创建一个应用程序对象 # sys.argv:用于接收用户在命令行启动该程序时传递过来的参数 app = QApplication(sys.argv) # 实例化一个QWidget对象 window = QWidget() # 设置window对象的标题 window.setWindowTitle('疯子的第一个窗体') # 设置window对象的大小 window.resize(980, 500) # 设置window对象的ico图标 window.setWindowIcon(QIcon('./ico/logo.ico')) # 实例化一个按钮对象,并使其继承与window对象 btn = QPushButton(window) # 设置btn按钮对象的文本 btn.setText('确定') # 设置btn按钮对象的大小 btn.resize(135,95) # 设置btn按钮对象左上角距离window对象左上角的距离 btn.move(200,100) # 显示窗体 window.show() # sys.exit 检测退出原因,正常退出为0,非正常退出为1 # app.exec_() 消息循环功能 sys.exit(app.exec_())
- 再添加一个不是继承关系的标签对象
from PyQt5.Qt import * from PyQt5.QtGui import QIcon import sys # 创建一个应用程序对象 # sys.argv:用于接收用户在命令行启动该程序时传递过来的参数 app = QApplication(sys.argv) # 实例化一个QWidget对象 window = QWidget() # 设置window对象的标题 window.setWindowTitle('疯子的第一个窗体') # 设置window对象的大小 window.resize(980, 500) # 设置window对象的ico图标 window.setWindowIcon(QIcon('./ico/logo.ico')) # 实例化一个按钮对象,并使其继承与window对象 btn = QPushButton(window) # 设置btn按钮对象的文本 btn.setText('确定') # 设置btn按钮对象的大小 btn.resize(135,95) # 设置btn按钮对象左上角距离window对象左上角的距离 btn.move(200,100) # 实例化一个标签对象,并未继承于window对象 lab_2 = QLabel() # 设置标签对象的窗体标题 lab_2.setWindowTitle('小窗体') # 设置标签对象显示的文本 lab_2.setText('取消') # 设置标签对象的大小 lab_2.resize(300, 200) # 显示窗体 window.show() lab_2.show() # sys.exit 检测退出原因,正常退出为0,非正常退出为1 # app.exec_() 消息循环功能 sys.exit(app.exec_())