打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python+playwright 学习-43 Pyinstaller打包生成独立的可执行文件。

前言

playwright 与Pyinstaller结合使用来创建独立的可执行文件。

本地化安装

有同学提到说想打成一个exe的独立包,但是执行playwright install会默认把 chromium,firefox 和 webkit 三个浏览器安装到系统目录。
这样打包的时候就找不到启动的浏览器文件。于是就想到把浏览器文件下载到我们代码的项目目录,打到一起。

在playwright 官方文档中有提到相关资料:
您可以将 Playwright 与Pyinstaller结合使用来创建独立的可执行文件。

# main.py
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("http://whatsmyuseragent.org/")
page.screenshot(path="example.png")
browser.close()

如果你想将浏览器与可执行文件捆绑在一起:

set PLAYWRIGHT_BROWSERS_PATH=0
playwright install chromium
pyinstaller -F main.py

将浏览器与可执行文件捆绑在一起将生成更大的二进制文件。建议只捆绑您使用的浏览器。

上面这段就是官方文档提到的,资料比较少,接下来详细讲解下set PLAYWRIGHT_BROWSERS_PATH=0 的作用

chromium 本地化安装

我们可以先创建一个虚拟环境

在虚拟环境下,安装你需要的包

pip install playwright

先设置环境变量

set PLAYWRIGHT_BROWSERS_PATH=0

设置完成后使用playwright install --dry-run查看浏览器安装路径

(venv) D:\demo\untitled1>playwright install --dry-run
browser: chromium version 112.0.5615.29
Install location: d:\demo\untitled1\venv\Lib\site-packages\playwright\driver\package\.local-browsers\chromium-1055
Download url: https://playwright.azureedge.net/builds/chromium/1055/chromium-win64.zip
Download fallback 1: https://playwright-akamai.azureedge.net/builds/chromium/1055/chromium-win64.zip
Download fallback 2: https://playwright-verizon.azureedge.net/builds/chromium/1055/chromium-win64.zip

browser: firefox version 111.0
Install location: d:\demo\untitled1\venv\Lib\site-packages\playwright\driver\package\.local-browsers\firefox-1391
Download url: https://playwright.azureedge.net/builds/firefox/1391/firefox-win64.zip
Download fallback 1: https://playwright-akamai.azureedge.net/builds/firefox/1391/firefox-win64.zip
Download fallback 2: https://playwright-verizon.azureedge.net/builds/firefox/1391/firefox-win64.zip

browser: webkit version 16.4
Install location: d:\demo\untitled1\venv\Lib\site-packages\playwright\driver\package\.local-browsers\webkit-1811
Download url: https://playwright.azureedge.net/builds/webkit/1811/webkit-win64.zip
Download fallback 1: https://playwright-akamai.azureedge.net/builds/webkit/1811/webkit-win64.zip
Download fallback 2: https://playwright-verizon.azureedge.net/builds/webkit/1811/webkit-win64.zip

browser: ffmpeg
Install location: d:\demo\untitled1\venv\Lib\site-packages\playwright\driver\package\.local-browsers\ffmpeg-1008
Download url: https://playwright.azureedge.net/builds/ffmpeg/1008/ffmpeg-win64.zip
Download fallback 1: https://playwright-akamai.azureedge.net/builds/ffmpeg/1008/ffmpeg-win64.zip
Download fallback 2: https://playwright-verizon.azureedge.net/builds/ffmpeg/1008/ffmpeg-win64.zip

如果你只用一个浏览器,那么你就只下载一个,以chromium 为例,执行

playwright install chromium

于是你可以在此目录找到d:\demo\untitled1\venv\Lib\site-packages\playwright\driver\package\.local-browsers\webkit-1811

顺着路径,你就会找到chromium-1055 和 ffmpeg 这2个文件。

需注意的是chromium-1055后面的1055 是版本号,此数字不能随便改,让它自己下载匹配的版本,不能直接复制别人下载的包。
并且安装包的位置不能随便乱放,一定要是先设置环境变量PLAYWRIGHT_BROWSERS_PATH=0, 再去安装让它自己去下载后放到指定的目录

Pyinstaller打包

安装Pyinstaller

pip install pyinstaller

安装完成后执行打包

pyinstaller -F main.py

icon 制作

-i参数打包的时候可以自定义icon图标

-i <FILE.ico or FILE.exe,ID or FILE.icns or "NONE">, --icon <FILE.ico or FILE.exe,ID or FILE.icns or "NONE">
FILE.ico: apply that icon to a Windows executable.
FILE.exe,ID, extract the icon with ID from an exe.
FILE.icns: apply the icon to the .app bundle on Mac OS
X. Use "NONE" to not apply any icon, thereby making
the OS to show some default (default: apply
PyInstaller's icon)

先找一张icon图片放到项目跟目录(注意并不是每个图片格式都可以,必须是icon格式)

-i 参数打包

pyinstaller -F yoyoblog.py -i favicon.ico

打包完成重新双击运行,会看到左上角有自己的icon了

icon在线制作https://www.bitbug.net/

2023年第 14期《Python接口自动化+Playwright 》课程,4月2号开学(课程全面升级)!

2023年第 3 期《Python 测试平台开发》进阶课程(3月5号开学)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
微软开源Node.js浏览器自动化库——playwright
推荐一款最强Python自动化神器!不用写一行代码
Python Playwright API使用实例详解
微软自动化测试工具palywright
Playwright快速上手指南
微软最强 Python 自动化工具开源了!不用写一行代码!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服