Mac 下如何打包 Playwright 程序

开发 后端
经常有朋友找我写个浏览器自动化工具,通常情况下我都是在 Windows 下打包,使用的方法就是 最简单的方式发布你的Python应用,然而也有朋友问我能否做一个 mac 版本,于是我就捣腾了一下,顺利完成,今天就分享下具体的做法。

[[439661]]

经常有朋友找我写个浏览器自动化工具,通常情况下我都是在 Windows 下打包,使用的方法就是 最简单的方式发布你的Python应用,然而也有朋友问我能否做一个 mac 版本,于是我就捣腾了一下,顺利完成,今天就分享下具体的做法。

使用 py2app

我首先采用了 py2app,按照官方文档的指示,我先生成了 setup.py,运行 python setup.py py2app 生成了一个 dist 目录,里面有个 Mac app,已运行就报错,什么报错提示也没有如下图:

于是我就看官方文档,文档那真是一个简陋,我没有找到 DATA_FILES 及 OPTIONS 的说明,于是就找一些 blog 或帖子,最终凑了下面的 setup.py 文件:

  1. from setuptools import setup 
  2.  
  3. APP = ['run.py'
  4. DATA_FILES = [ 
  5.     'config.py'
  6.     'main.py'
  7.     'utils.py'
  8. OPTIONS = { 
  9.     # 'argv_emulation'True
  10.     # 'semi_standalone':'False'
  11.     # 'packages':['playwright'
  12.  
  13. setup( 
  14.     app=APP, 
  15.     data_files=DATA_FILES, 
  16.     options={'py2app': OPTIONS}, 
  17.     setup_requires=['py2app'], 

然后继续打包依然报错,无论怎么调整都没用,我甚至把浏览器放在了 Mac app 包里面的各个位置都试了下,依然不行,但是执行 python setup.py py2app -A 就可以,但是这种打包出的 app 依赖本机,无法发给别人运行,最终放弃。

使用 pyinstaller

我还是不死心,又试了下 pyinstaller,不过这次我先去 playwright 官网看了下打包的方法,发现有说明:

于是我就在自己脚本目录执行了两条命令,就直接生成了一个自带 firefox 的可执行文件:

  1. PLAYWRIGHT_BROWSERS_PATH=0 playwright install firefox 
  2.  
  3. pyinstaller -F run.py 

然后把 dist 文件里面的可执行文件发给朋友,就可以使用了,大功告成!

最后的话

使用一个工具,最高效的方式还是看它的官方文档,如果官网很简陋,很滞后,那么这个工具大多不靠谱,比如 py2app,如果文档很详细,那工具也肯定不错,比如 playwright、django、pyinstaller。

本文转载自微信公众号「Python七号」,可以通过以下二维码关注。转载本文请联系Python七号公众号。

 

责任编辑:武晓燕 来源: Python七号
相关推荐

2017-04-21 12:03:46

MacASP.NET Cor程序

2024-02-20 08:51:56

PythonFlask工具

2014-09-12 14:41:12

2023-12-20 09:43:09

Docker容器代码

2023-05-11 16:47:21

playwright用法程序

2013-08-28 15:50:36

Linux桌面Mac

2011-09-07 17:28:32

ubuntuproj

2011-08-03 13:43:50

iOS程序 打包 发布

2021-05-07 21:53:44

Python 程序pyinstaller

2021-05-08 12:30:03

Pythonexe代码

2011-12-07 12:01:31

ibmdw

2017-12-12 09:06:14

UbuntuMAC地址网络管理器

2011-08-09 13:34:53

SubversionXCodeMac

2011-08-30 16:31:23

UbuntuXdebug

2021-01-14 22:17:09

PythonLinux工具

2012-09-29 11:13:15

Node.JS前端开发Node.js打包

2022-07-27 10:39:27

Python打包工具

2011-01-06 10:39:25

.NET程序打包

2021-06-16 18:16:22

Windows 10Windows操作系统

2021-06-07 23:51:16

MacGo服务
点赞
收藏

51CTO技术栈公众号