windows 环境下打包为exe 与 playwright 代码带浏览器独立打包

playwright 程序在虚拟环境运行正常,如何打包到其他电脑运行【解决chromium打包后找不到路径问题】 当用户运行 app.exe 时,PyInstaller 会将所有文件解压到临时目录(例如 C:\Users\\AppData\Local\Temp\_MEIxxx),代码需要基于这个临时根目录找到 Chromium。通过以上方法,你的代码可以在打包后正确找到 Chromium 的相对路径,并确保分享到其他电脑时仍然可用。如果打包后路径仍有问题,欢迎私信交流!运行 test.exe 检查实际路径是否正确。代码会自动适配这个结构。 阅读详情
AI摘要

本文档详细介绍了如何利用Python的Playwright库和PyInstaller工具,创建并打包一个轻量级的Python应用程序。首先,通过conda创建一个特定于项目的虚拟环境,以减小最终打包程序的体积。然后,安装必要的包,包括playwright、pyinstaller和pywin32。在虚拟环境中执行这些命令时,需指定相应路径。接着,安装其他所需包,并进行程序代码的编写。最后,通过设置环境变量PLAYWRIGHT_BROWSERS_PATH并运行PyInstaller,完成程序的打包,可以选择是否添加图标。参考链接提供了更多关于Playwright和PyInstaller集成的信息。

step1:建立playwright python虚拟环境

新建虚拟环境可以在使用pyinstaller 打包时只打包环境内用到的相关包,减少打包的程序大小。

conda create -n py_venv_wright python==3.7
conda activate py_venv_wright

注意:如果activate后 pip list 仍然是全局的包的列表,需要在运行pip 命令和 Pyinstaller 、playwright 命令时 指定 虚拟环境下该命令的位置 + 命令参数 如:
d:\envs\venv_pyw\Scripts\pip.exe install pywin32
d:\envs\venv_pyw\Scripts\pip.exe install playwright
d:\envs\venv_pyw\Scripts\playwright.exe install chromium
d:\envs\venv_pyw\Scripts\pyinstaller.exe -F -i logo.ico xxxyyy.py --exclude-module pydoc

step2: 安装需要的包

pip install playwright
pip install pyinstaller
pip install pywin32
pip install other_packages_you_need

step3 打包

准备好写好的python 程序代码,在cmd 命令窗口下运行,准备好logo.ico文件(应用程序图标文件也可以不用,可以在这个网站上上传图片转换为ico文件: https://www.bitbug.net/),

set PLAYWRIGHT_BROWSERS_PATH=0
playwright install chromium
# 如果报错 PyInstaller.exceptions.ImportErrorWhenRunningHook: Failed to import module __PyInstaller_hooks_0_pydoc required by hook for module 
# 则加 --exclude-module pydoc
#  如: pyinstaller -F -i logo.ico xxxyyy.py --exclude-module pydoc
# 带图标的
# pyinstaller -F -i logo.ico xxxyyy.py 
# 不带图标的
pyinstaller -F  xxxyyy.py 

参考链接:

  • https://playwright.dev/python/docs/intro#pyinstaller
playwright使用教程(二)-- 加入配置文件及打包 本文介绍了如何为Playwright自动化测试脚本添加配置文件管理和打包成可执行文件的方法。主要内容包括:1)将配置文件单独存放于conf_file目录,编写了能自动识别打包前后配置路径的加载函数;2)添加日志记录和截图功能,自动创建logs和screenshots目录;3)使用pyinstaller打包步骤,包括spec文件配置要点,如添加模块路径、数据文件和依赖库。最终生成的可执行文件位于dist目录,便于在没有Python环境的客户现场进行测试交付。 阅读详情

相关推荐

Python + Playwright 无头浏览器Chrome找不到元素

用Python + Playwright调试时,发现不用无头浏览器(即`headless=False`)代码能够运行成功,但是一用无头浏览器时(即`headless=True`)就会报错,提示找不到元素。换成Firefox浏览器又不会有这个问题,有可能是因为网站有一个前段反爬虫手段。

Junson142099的博客 6353

python用playwright自动化测试程序打包exe

存放路径一般为 “C:\Users\你的用户名\AppData\Local\ms-playwright”,加入你的测试程序只想跑在谷歌浏览器中,代码中也设置的是在谷歌下测试的话,那么把chromium-xxxx文件夹拷贝到python文件夹的Lib\site-packages\playwright\driver\package\路径中,然后建立“.local-browsers”文件夹,并把刚才的浏览器chromium-xxxx文件夹扔进去。3、打包python代码为exe,并附加playwright。

3094

Python Playwright脚本打包成独立EXE:含浏览器内核的完整方案

在软件自动化测试与网页数据抓取领域,Python脚本的跨平台分发一直是个挑战。其核心原理在于将脚本、解释器、依赖库及运行时环境封装为独立可执行文件,以实现真正的开箱即用。这项技术的核心价值在于极大降低了工具使用门槛,提升了专业度和用户体验,尤其适用于需要交付给非技术用户或部署在纯净环境中的场景。通过结合PyInstaller的静态打包能力与Playwright的动态浏览器管理机制,可以构建出包含完整Chromium内核的独立EXE文件。本文以Playwright自动化测试框架为例,详细拆解了如何解决浏览器二

weixin_33719619的博客 591

Python+Playwright(Nuitka、Pyinstaller打包)

nuitka, pyinstaller打包playwright/selenium

xiaohouzi112233的博客 7725

Playwright 打包独立EXE:内置浏览器内核,实现双击即用

Python 脚本的分发一直困扰自动化测试与RPA工程场景:目标机器缺少 Python 环境、依赖库或浏览器驱动,导致工具无法直接运行。将脚本与运行时资源打包为独立 EXE,是解决交付难题的通用思路。其核心原理在于,打包工具不仅收集 Python 解释器与第三方库,还需把 Playwright 的 Chromium 内核一并封装,并通过环境变量与资源路径规则确保运行时能正确定位浏览器。基于 PyInstaller 定制 spec 文件,可实现对内核目录的完整注入,生成免安装、可双击执行的 Windows 程

weixin_28826961的博客 332

Playwright+PyInstaller实战:将爬虫脚本打包成独立exe文件

本文详细介绍了如何使用PyInstaller将基于Playwright的Python爬虫脚本打包成独立的exe文件,解决浏览器路径配置、异步事件循环等常见问题,并提供减小打包体积、代码保护等优化建议,帮助开发者轻松交付自动化工具。

weixin_29063035的博客 564

教程:将 Python Playwright 脚本打包为独立 Windows EXE (含浏览器内核)

摘要:本文介绍了一种将Python Playwright脚本打包成独立exe文件的方案,解决了非技术用户使用时的环境依赖问题。通过动态检测运行环境并重定向浏览器路径,结合PyInstaller将代码、依赖库和Chromium内核打包。关键步骤包括:1) 编写适配代码处理打包环境的路径问题;2) 使用PowerShell脚本自动化下载浏览器并构建exe。最终生成的exe文件可零依赖运行,支持命令行参数配置,并具备友好的错误提示功能。

core815的专栏 1641

解决Playwright打包报错:PyInstaller与Docker实战方案

浏览器自动化是现代数据采集和Web测试的核心技术,它通过程序控制浏览器行为,模拟用户操作,实现对动态渲染页面的精准抓取与交互。其原理在于通过驱动协议与浏览器内核通信,从而执行导航、点击、表单填写等复杂操作。这一技术的核心价值在于能够高效处理JavaScript密集型网站,解决传统HTTP请求无法获取动态内容的难题,广泛应用于数据挖掘、自动化测试、监控报警等场景。在实际工程化部署中,依赖外部浏览器二进制文件的自动化工具常面临分发挑战,例如Playwright框架在打包后因缺失浏览器驱动而报错。本文聚焦于Pla

weixin_33912246的博客 448

window系统:python3 + auto-py-to-exe 打包playwright为exe,内含独立浏览器

auto-py-to-exe的使用参考一下链接: 链接: python—auto-py-to-exe—.py文件打包成.exe文件最全最详细(用不同的类别做教程) 这个问题在使用auto-py-to-exe打包后,没有把playwright文件夹打包进去,不知道为什么, 我的包安装地址是:C:\Python311\Lib\site-packages\playwright 在 附加文件 -》 添加目录 。里面选择自己playwright安装的文件夹,就可以正常运行 这个提示是告知我们没有找到浏览器,因为代码

莲君子的博客 2872

从PyInstaller到Playwright:EXE打包实战与高频问题全解

在Windows生态中,.exe可执行文件是软件交付最普遍的形态,无论是Python脚本、Java程序还是桌面应用,最终都需要打包成用户可双击的格式。打包工具的底层原理各不相同:PyInstaller通过捆绑解释器与依赖实现自包含,Nuitka则编译为机器码以提升性能与安全性。掌握这些技术,能让工具免于目标环境配置,直接分发到业务方或非技术同事手中。实际场景中,GUI程序、Flask-SocketIO实时服务、Playwright爬虫脚本携带浏览器等需求,均需针对性处理动态依赖与资源路径,例如Flask-S

weixin_28842367的博客 334

Playwright进阶指南:配置文件管理与EXE打包实战

本文深入探讨了Playwright自动化项目的配置文件管理与EXE打包实战。通过构建清晰的项目结构、实现智能的配置文件动态加载机制,并详细解析了使用PyInstaller将项目打包成独立可执行文件的完整流程与关键配置,有效解决了项目部署和跨环境运行的核心难题。

weixin_28840591的博客 277

Win下打包playwright+allure+pytest项目为一个exe

重点来了:上述工具虽然好用,但只是打包项目内环境,当我们生成一个playwright项目的exe文件运行时,会提示'exist does't chrome',提示需要pyinstaller install安装浏览器,切默认安装在C盘,如果要完整打包(项目与浏览器)成为一个exe直接在一台什么环境都没有的机器上运行可按下述步骤。就是把playwright自己下载的浏览器复制到你项目内,根据playwright的官方文档给出的命令,可以修改playwright浏览器路径为项目内的路径,具体可以这么写。

huaichijiao2021的博客 700

使用venv虚拟环境解决Playwright安装与浏览器下载失败问题

在Python项目开发中,依赖管理与环境隔离是保障项目稳定运行的基础技术。通过虚拟环境(如venv)为每个项目创建独立的Python运行空间,可以有效避免库版本冲突和依赖污染问题,这是现代Python开发工作流的核心实践。其技术价值在于确保开发、测试与生产环境的一致性,从而提升团队协作效率和项目可维护性。这一原理在Web自动化、UI测试和爬虫等应用场景中尤为重要,例如在使用Playwright这类需要下载特定浏览器二进制文件的工具时。本文聚焦于如何利用venv创建纯净环境,并系统性地解决Playwright

weixin_34347651的博客 423

Playwright工程化实战:配置文件管理与PyInstaller打包EXE全解析

在软件工程实践中,配置管理与应用打包是提升项目可维护性和交付能力的关键环节。配置管理通过实现代码与配置的分离,解决了环境差异、安全敏感信息泄露和团队协作冲突等核心问题,其原理在于将可变参数外部化。PyInstaller等打包工具则通过将Python解释器、脚本及依赖库封装为独立可执行文件,实现了项目的零依赖分发,极大提升了交付物的易用性和专业性。这两项技术的结合,尤其适用于需要交付给非技术用户或构建独立客户端工具的场景。本文以Playwright自动化项目为例,深入探讨了如何利用JSON与Pydantic进

404

Playwright项目一键分发实战:用PyInstaller把你的爬虫/自动化脚本变成独立EXE

本文详细介绍了如何利用PyInstaller将Playwright项目打包成独立EXE文件,解决浏览器依赖等关键问题。通过项目结构优化、依赖管理、浏览器资源集成及高级PyInstaller配置技巧,帮助开发者实现自动化脚本的一键分发,提升工具的可移植性和用户友好性。

weixin_33670786的博客 200

BLE天线设计避坑:NRF52832官方50欧姆阻抗匹配的3个常见误区

本文深入解析NRF52832蓝牙SoC天线设计中的常见误区,重点探讨50欧姆阻抗匹配的3个关键问题:PCB板材介电常数差异、匹配元件寄生参数及VSWR测试。通过实测数据和优化方案,帮助工程师规避设计陷阱,提升BLE通信性能。

beer8的博客 214

Python项目打包exe全攻略:PyInstaller到Playwright实战排错

可执行文件(exe)是Windows环境下最常见的软件分发形态,它让脚本和程序在没有Python、Java等运行环境的目标机器上直接运行。打包工具通过分析依赖、收集运行时资源,将源码转变为独立可执行文件,既提升了部署效率,也保护了核心逻辑。在实际工程中,从Python脚本转exe,到Flask+SocketIO服务打包后出现invalid async_mode、Playwright携带浏览器一起打包exe,再到CMake编译VS未生成exe、exe文件关联被篡改等,都是高频踩坑场景。本文围绕exe的完整生命

weixin_32667955的博客 252

PTPX功耗分析实战——从脚本配置到报告解读

本文详细介绍了PTPX功耗分析的全流程,从脚本配置到报告解读,帮助工程师快速掌握芯片设计中的功耗估算技术。文章涵盖了环境搭建、波形文件处理、功耗报告解析等关键环节,并提供了实战经验和优化建议,特别适合需要提升PTPX功耗分析效率的开发者。

weixin_29248313的博客 279

Python打包EXE全指南:PyInstaller/Nuitka与Flask/Playwright实战避坑

在软件开发与工具交付中,将脚本或应用打包为独立可执行文件是一种常见的分发需求。无论是内部工具还是轻量服务,通过编译或封装生成EXE,可以免去目标环境配置依赖的麻烦。以PyInstaller和Nuitka为代表的打包工具,分别通过静态打包与源码编译实现Python程序的原生化,前者配置简单、生态成熟,后者在启动速度和体积上更具优势。同时,对于Flask-SocketIO、Playwright等框架,打包时需注意异步驱动、浏览器内核等特殊依赖的处理。本文还涵盖Bat转EXE、EXE解包、Windows文件关联修

weixin_30768881的博客 318

LangGraph教程8:LangGraph流式处理

流式处理可显著提升基于LLM应用的响应性。LangGraph支持两种流式模式:values模式返回每一步的完整结果,适合需要完整上下文处理的场景;updates模式仅返回增量变化,适用于实时更新需求。示例代码展示了如何用create_react_agent实现这两种模式,其中values模式完整记录处理流程,updates模式逐步输出结果。通过异步迭代输出流,开发者可以灵活选择适合应用场景的流式处理方式。

Cachel Wood的博客 618

GibbsCAM软件二次开发:GibbsCAM软件API接口详解

API(Application Programming Interface,应用程序编程接口)是一种允许不同软件之间进行通信的接口。在GibbsCAM软件中,API提供了与外部程序交互的能力,使得开发者可以利用GibbsCAM的强大功能进行二次开发,定制化满足特定的制造需求。GibbsCAM的API主要基于.NET框架,使用C#或VB.NET等语言进行编程。在GibbsCAM软件中,通过API接口创建自定义几何形状是实现复杂零件设计和加工策略定制的关键步骤。

kkchenjj的博客 1494

Python 打包 exe 完整实战:从 PyInstaller 到 Nuitka 的排坑指南

在 Windows 环境下,将 Python 脚本分发为免安装的 exe 可执行文件,是降低使用门槛、简化部署流程的关键工程实践。无论是基础的 tkinter 桌面程序,还是依赖 Flask-SocketIO 的实时通信服务,亦或是携带浏览器内核的 Playwright 自动化脚本,都需要通过打包工具将解释器、依赖库与项目代码整合为独立产物。PyInstaller 凭借简单易用和成熟的 hook 机制,适合快速交付;而 Nuitka 通过将 Python 编译为 C 代码,在源码保护和运行效率上更胜一筹。本

weixin_34049948的博客 337

【ArcPy】用Python批量处理大规模地理数据的几何校正

在许多GIS应用中,尤其是在大规模地理数据处理时,几何校正(Geometric Correction)是一个至关重要的任务。它确保了不同来源的地理数据能够正确地对齐和匹配,从而为后续分析提供准确的基础。几何校正的常见应用包括遥感影像的地理配准、矢量数据的投影转换等。几何校正通常包括坐标转换、重采样等步骤。以下示例展示了如何使用arcpy的工具进行几何校正。"""实施几何校正:param input_layer: 输入待校正数据层。

陈书予 995
上一篇: flasgger 描述post 请求中的data json
下一篇: 【Conda日常使用记录】
Magicapprentice
博客等级 码龄12年 111粉丝 42原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值