Mac 下如何打包 Playwright 程序
經常有朋友找我寫個瀏覽器自動化工具,通常情況下我都是在 Windows 下打包,使用的方法就是 最簡單的方式發布你的Python應用,然而也有朋友問我能否做一個 mac 版本,于是我就搗騰了一下,順利完成,今天就分享下具體的做法。
使用 py2app
我首先采用了 py2app,按照官方文檔的指示,我先生成了 setup.py,運行 python setup.py py2app 生成了一個 dist 目錄,里面有個 Mac app,已運行就報錯,什么報錯提示也沒有如下圖:
于是我就看官方文檔,文檔那真是一個簡陋,我沒有找到 DATA_FILES 及 OPTIONS 的說明,于是就找一些 blog 或帖子,最終湊了下面的 setup.py 文件:
- from setuptools import setup
- APP = ['run.py']
- DATA_FILES = [
- 'config.py',
- 'main.py',
- 'utils.py',
- ]
- OPTIONS = {
- # 'argv_emulation': True,
- # 'semi_standalone':'False',
- # 'packages':['playwright']
- }
- setup(
- app=APP,
- data_files=DATA_FILES,
- options={'py2app': OPTIONS},
- setup_requires=['py2app'],
- )
然后繼續打包依然報錯,無論怎么調整都沒用,我甚至把瀏覽器放在了 Mac app 包里面的各個位置都試了下,依然不行,但是執行 python setup.py py2app -A 就可以,但是這種打包出的 app 依賴本機,無法發給別人運行,最終放棄。
使用 pyinstaller
我還是不死心,又試了下 pyinstaller,不過這次我先去 playwright 官網看了下打包的方法,發現有說明:
于是我就在自己腳本目錄執行了兩條命令,就直接生成了一個自帶 firefox 的可執行文件:
- PLAYWRIGHT_BROWSERS_PATH=0 playwright install firefox
- pyinstaller -F run.py
然后把 dist 文件里面的可執行文件發給朋友,就可以使用了,大功告成!
最后的話
使用一個工具,最高效的方式還是看它的官方文檔,如果官網很簡陋,很滯后,那么這個工具大多不靠譜,比如 py2app,如果文檔很詳細,那工具也肯定不錯,比如 playwright、django、pyinstaller。
本文轉載自微信公眾號「Python七號」,可以通過以下二維碼關注。轉載本文請聯系Python七號公眾號。