问题
在使用 pyinstaller
打包 playwright
程序,由于 playwright
的浏览器默认是安装在C盘中,所以打包程序时,并不会将其浏览器打包进程序包,就导致在其他的电脑中无法使用。
原理
其实解决这个问题,就要利用 playwright
预留的 PLAYWRIGHT_BROWSERS_PATH
环境变量了,通过其内容可以控制 playwright
调用的浏览器路径。当然,该变量也会影响 playwright install
安装的路径。而当其值为 0
时,会将浏览器安装在 python
路径下的 /site-packages/playwright/driver/package/.local-browsers
目录中,自然而然可以通过 pyinstaller
打包进程序里。
解决
方法一
修改python代码,使其读取绝对路径下的浏览器(不打包进程序)os.environ['PLAYWRIGHT_BROWSERS_PATH'] = "C:/playwright/" # 将其修改为绝对路径
方法二
修改环境变量,将浏览器安装进python内置目录# powershell $env:PLAYWRIGHT_BROWSERS_PATH="0" # Linux export PLAYWRIGHT_BROWSERS_PATH="0" # cmd set PLAYWRIGHT_BROWSERS_PATH="0"finallyplaywright install### 总结
如果 playwright
程序只有一个的话,通过方式二比较方便,如果有多个程序,推荐使用方式一,因为单个程序打包就将近700MB了。