• python+Web自动化打包exe+配置文件


    引言:简单的打包单个没有依赖关系的.py文件很简单,但是想要运用到框架的没几个博客。我找了好多博客都很水,什么喂饭教程,太水了,还是没有实现打包。
    本文仅仅引用一篇博客链接:我的思路就是从这个链接来的,最后实现了我想要的功能!上链接

    前置条件:下载 pyinstaller 库

    有网的下载:pip install pyinstaller
    没有网的下载这些个插件:官网给你:戳这里 红色就是插件名称,比如zipp
    记得进去修改路径就好了 https://pypi.org/project/pycparser/#files 就修改成 https://pypi.org/project/zipp/#files
    在这里插入图片描述

    首先、

    一、生成XXX.spec文件

    打开cmd,路径切换到pycharm的工程目录下,执行命令:xxx.py 也就是你想打包的文件

    pyi-makespec xxx.py
    
    • 1

    在windows窗口就可以看到这个文件。然后进去里面去用txt或者notepad++编辑;
    在这里插入图片描述

    二、编辑XXX.spec文件

    下面就是内容!介绍一下:除了修改的地方自行修改,其他地方直接copy我的就行了
    需要修改的地方:
    1、Analysis(['run.py'] --------- > 就是你想要打包的文件,也就是执行入口
    2、name='run' --------- > 文件名,不需要后缀
    3、hiddenimports = […] 这些个都是你的运行run.py所必须的依赖文件。注意依赖文件的定义是在你的代码中比如是我写的WEB自动化,这些文件都是执行操作的文件,比如点击,退出,打开网页。如果是api自动化框架,可以去试试写执行测试用例的文件,比如unittest文件,这个博主也没有试过,见谅!
    举例:
    web_ui_auto_lib.element_behavior_handlers.check_behavior_handler’,其实这就是路径:web_ui_auto_lib/element_behavior_handlers/check_behavior_handler,check_behavior_handler就是文件名
    在这里插入图片描述

    # -*- mode: python ; coding: utf-8 -*-
    
    
    block_cipher = None
    
    
    a = Analysis(['run.py'],
                 pathex=[],
                 binaries=[],
                 datas=[],
                 hiddenimports=['web_ui_auto_lib.element_behavior_handlers.check_behavior_handler',
                 'web_ui_auto_lib.element_behavior_handlers.click_behavior_handler',
                 'web_ui_auto_lib.element_behavior_handlers.close_behavior_handler',
                 'web_ui_auto_lib.element_behavior_handlers.refresh_behavior_handler',
                 'web_ui_auto_lib.element_behavior_handlers.input_behavior_handler',
                 'web_ui_auto_lib.element_behavior_handlers.openurl_behavior_handler',
                 'web_ui_auto_lib.element_behavior_handlers.screenshot_behavior_handler',
                 'web_ui_auto_lib.element_behavior_handlers.move_behavior_handler',
                 'web_ui_auto_lib.element_behavior_handlers.upload_behavior_handler',
    	         'web_ui_auto_lib.element_behavior_handlers.quit_behavior_handler',
    	         'web_ui_auto_lib.element_behavior_handlers.point_behavior_handler'],
                 hookspath=[],
                 hooksconfig={},
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher,
                 noarchive=False)
    pyz = PYZ(a.pure, a.zipped_data,
                 cipher=block_cipher)
    
    exe = EXE(pyz,
              a.scripts,
              a.binaries,
              a.zipfiles,
              a.datas,
              [],
              name='run',
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              upx_exclude=[],
              runtime_tmpdir=None,
              console=True,
              disable_windowed_traceback=False,
              target_arch=None,
              codesign_identity=None,
              entitlements_file=None )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    三、在第一步打开的CMD中执行XXX.spec文件

    输入命令:-F 就是打包单个文件,其实入口大概率也就一个

    pyinstaller -F run.spec
    
    • 1

    四、在工程目录会生产两个文件,一个为dist一个为build。

    进去dist文件中,会发现生成一个XXX.exe文件,就是我们想要打包文件工具

    还没完注意!!!!!!!!!!!!!!!!!!!!!!!!!!!

    我们还需要加入我们的配置文件!我们的EXCEL放在哪里,要根据我们配置文件的路径来,我们的一些配置文件都要跟我们的工程里面的位置是一样的。
    我建议大家都写成相对路径,比如我的:除了生成的报告用的绝对路径以外,其他的都是相对路径

    [file]
    report_file_path = C:\\Temp\\Report\\
    screenshot_path = .\screenshot
    runstatus_file_path = C:\\Temp\\runstatus\\
    file_download_path = C:\\Temp\\download
    driver_file_path = .\data\chromedriver.exe
    driver_name = "Chrome:chromedriver,Firefox:geckodriver"
    staff_file_path = .\data\\staff.json
    report_html_path = .\report
    addTest_path = .\web_ui_auto_lib\
    [log]
    log_folder_path = .\logs
    log_level = 4
    [version]
    versionid = v0.1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    举例:

    staff_file_path = .\data\\staff.json,这个文件需要用到data目录,那么就需要在dist目录中新建data文件,然后把staff.json文件给扔进来。
    总之一句话:把你需要的所以配置文件或者是驱动,都扔到你的dist文件下面,注意自己写的层级关系,相对路径有文件夹,就新建文件夹,没有就直接扔文件,那些自动生成的文件或者文件夹就不用扔了

    五、最后,你一定会运行成功的!!!

  • 相关阅读:
    《吐血整理》高级系列教程-吃透Fiddler抓包教程(23)-Fiddler如何优雅地在正式和测试环境之间来回切换-上篇
    Towards Class-Oriented Poisoning Attacks Against Neural Networks 论文笔记
    【设计模式】Java 语言不同的编程范式-第1章
    vue watch 侦听器 监视器
    〖Python 数据库开发实战 - MySQL篇⑨〗- 什么是 SQL 语言、如何创建数据逻辑库及如何创建数据表
    KMP 算法 + 运用前后缀信息 + 案例分析 + 实战力扣题
    STM32ADC模拟/数字转换详解
    电脑如何查看是否支持虚拟化及如何开启虚拟化
    ETH POS 2.0 Staking 测试网质押流程
    cookie和session的跨域怎么解决?
  • 原文地址:https://blog.csdn.net/m0_51709670/article/details/125448665