001.PyQt5_环境配置

在这里插入图片描述

我 的 个 人 主 页: 失心疯的个人主页
入 门 教 程 推 荐 : Python零基础入门教程合集
虚 拟 环 境 搭 建 : Python项目虚拟环境(超详细讲解)
PyQt5 系 列 教 程: Python GUI(PyQt5)文章合集
Oracle数据库教程: Oracle数据库文章合集
优 质 资 源 下 载 : 资源下载合集

在这里插入图片描述
本文后半部分的虚拟环境配置讲的有点繁琐,建议看这一篇关于虚拟环境搭建的详细介绍
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 环境的隔离。
    • 为了让开发容易区分当前环境是否虚拟环境以及是那个虚拟环境,命令提示符前会加上特殊标记,例如:
      001.PyQt5_环境配置_第1张图片

虚拟环境

  • 什么是虚拟环境
  • python的虚拟环境类似于虚拟机,能够创建一个独立的python运行环境,虚拟环境中的安装的第三方依赖包和全局环境中的包相互独立。
  • 配置环境是基于项目级别的,Pycharm对每一个项目都有一个虚拟环境,项目之间隔离开
  • 虚拟环境的优点:
    1. 不同的虚拟环境相互独立,不会影响到其他应用。
    2. 防止出现包管理混乱和版本冲突。
    3. 不会影响全局的python环境。
    
  • 如何创建虚拟环境
  • 方法一:环境准备:
    1. python 3.6.4 (python3.3以上自带venv模块)
    2. Windows 10
  • 第一步:
    新建一个文件夹用于创建虚拟环境,这里在E盘上新建了一个 Env 文件夹(任意路径下创建Env文件夹都可以!!!)
    
  • 第二步:
    打开cmd,切换路径到 Env 文件夹中,命令如下:
    cd E:\Env
    
  • 第三步:
    接着创建虚拟环境,命令如下:
    
        python -m  venv test_env  ( test_env是虚拟环境的名称,可以随意更改。)
    
        现在可以查看文件夹Env中出现了一个名为test_env的文件夹,其中包含了python可执行文件,
        以及pip库的一份副本,这样就能安装其他包了。
    
    注意:默认新建的虚拟环境中没有全局环境中的第三方依赖包,若需要访问全局环境中的包可添加参数
    
  • 第四步:
    目前已成功创建虚拟环境,接下来需要激活虚拟环境,命令如下:
         cd E:\env\test_env\scripts
    然后使用命令:
    	.\activate
    
    结果如下( 激活虚拟环境后会在最前面显示(test_env)  ):
     
    如果要退出虚拟环境,使用命令:deactivate
     退出后就没有(test_env)了。
    
  • 在虚拟环境中如下 001.PyQt5_环境配置_第2张图片

  • 方法二:通过pipenv安装虚拟环境
  1. 安装pipenv,用于配置虚拟环境

    • 第一步:
      新建一个文件夹用于创建虚拟环境,这里在E盘上新建了一个 PyQt5 文件夹(任意路径下创建PyQt5文件夹都可以!!!)
      
    • 第二步:
      打开cmd,切换路径到 PyQt5 文件夹中,命令如下:
      cd E:\PyQt5
      
    • 第三步:
      安装pipenv
      
      pip install pipenv
      
  2. 创建虚拟环境:

    • 打开pycharm,建立一个新的工程(New Project),打开刚刚新建的文件夹 —— 在PyCharm的Terminal窗口创建虚拟环境
    pipenv --three #使用系统当前的 python3 版本生成虚拟环境
    pipenv --two    # 生成python2版本的虚拟环境
    pipenv --python 3.6 #生成 python 3.6 版本的虚拟环境
    

    001.PyQt5_环境配置_第3张图片
    001.PyQt5_环境配置_第4张图片

  3. 激活虚拟环境

    pipenv shell
    
  4. 查看当前虚拟环境解释器所在位置

    pipenv --venv
    
    # 复制这个地址,等会设置开发环境的时候需要用
    
  5. 设置当前虚拟环境为默认开发环境:

    • File —— Settings —— project —— Python Interpreter —— 点击右侧齿轮 —— Add
    • 选择eXisting environment(现有环境) —— 点击选择 —— 粘贴刚刚复制的解释器位置,按回车
    • 虚拟环境的编译器 python.exe 存在于目录的 scrpit 文件夹下,只需要直接选择该文件并且点击 OK 即可
    • 001.PyQt5_环境配置_第5张图片
      001.PyQt5_环境配置_第6张图片
  • 准备安装第三方库
    • 前面执行pipenv --three的时候在虚拟环境路径下生成名叫 Pipfile 的文件。

    • 打开 Pipfile 发现是官方的源,修改安装源为清华源

    • 国内常用镜像源

      清华大学 :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/
      
    • 修改前
      -001.PyQt5_环境配置_第7张图片

    • 修改后
      001.PyQt5_环境配置_第8张图片

    • 修改好源即可安装第三方库了

  1. 安装PyQt5、PySide2
    pip install PyQt5
    
    pip install PySide2
    
  2. 图形化界面设计,那就还需要安装pyqt5-tools并搭建开发环境
  • 安装pyqt5-tools

    pip install pyqt5-tools
    
  • 配置:添加 Qt Designer

    • File —— Settings —— Tools —— External Tools —— “+”
      001.PyQt5_环境配置_第9张图片

    • Program:如果找不到designer.exe,可以在pyCharm中点击搜索(或者连续按shift)
      001.PyQt5_环境配置_第10张图片

    • Working directory:点击后面的“+”,选择FileDir-File directory

      Program:是designer.exe所在的路径,不同版本存储的路径可能不一样,得自己找.
               有的是%Python的安装路径%\Lib\site-packages\pyqt5_tools\designer.exe
               有的是%Python的安装路径%\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
      
      Working directory:这里是设置最后生成的UI文件默认保存地址。就填“$FileDir$”(代表当前项目目录),比较方便的也可以点击右侧Insert Macro...,然后找到“$FileDir$”。
      
    • 这个tool是可以用来写UI的,下面要设置一个将UI变成py文件的。

  • 配置:添加PyUIC

      • File —— Settings —— Tools —— External Tools —— “+” 001.PyQt5_环境配置_第11张图片
    Program:是Python的安装路径
    
    Arguments:-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py
    
    Working directory:“$FileDir$”
    
  • 图形化界面环境配置完成。接下来就可以直接使用图形化界面创建窗体了

  • 项目 —— 鼠标右键 —— External Tools —— QTDesigner
    001.PyQt5_环境配置_第12张图片

  • 打开界面如下
    001.PyQt5_环境配置_第13张图片


创建第一个窗体
  • 用代码创建第一个窗体
    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_())
    

001.PyQt5_环境配置_第14张图片

  • 再添加一个不是继承关系的标签对象
    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_())
    

001.PyQt5_环境配置_第15张图片

你可能感兴趣的:(PyQt5,qt,python,深度学习,pyqt)