程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

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

編輯:Python

引言:簡單的打包單個沒有依賴關系的.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

在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 )

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

輸入命令:-F 就是打包單個文件,其實入口大概率也就一個

pyinstaller -F run.spec

四、在工程目錄會生產兩個文件,一個為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

舉例:

staff_file_path = .\data\\staff.json,這個文件需要用到data目錄,那麼就需要在dist目錄中新建data文件,然後把staff.json文件給扔進來。
總之一句話:把你需要的所以配置文件或者是驅動,都扔到你的dist文件下面,注意自己寫的層級關系,相對路徑有文件夾,就新建文件夾,沒有就直接扔文件,那些自動生成的文件或者文件夾就不用扔了

五、最後,你一定會運行成功的!!!


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved