为了解决这个错误,需要告诉 pyinstaller 使用 –add-data 选项来包含两个证书文件。这样,pyinstaller 可以处理 Selenium Wire 在首次加载证书时所做的调用。(Selenium Wire 使用标准的 pkgutil.get_data() 机制来内部加载这些文件。)
解决步骤:
在当前工作目录中创建两个证书文件 ca.crt 和 ca.key。
使用 –add-data 在运行 pyinstaller 时指定这两个文件。例如:
pyinstaller --add-data 'ca.crt;seleniumwire' --add-data 'ca.key;seleniumwire' --onefile my_prog.py
(其中 my_prog.py 是你的脚本名称,按需要更改。)
一旦生成了二进制文件,你可以删除这两个本地证书文件。
如果是在 Mac/Linux 上运行,使用冒号 : 作为分隔符,例如:
pyinstaller --add-data 'ca.crt:seleniumwire' --add-data 'ca.key:seleniumwire' --onefile my_prog.py
参考资料: