小编典典

如何在pyinstaller中包含chromedriver?

selenium

我正在使用pyinstaller创建我的python脚本的可执行文件。
在脚本中,我使用了以下导入:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
etc...

问题是,运行时pyinstaller myscript.py,它将导致包括Firefox而不是Chrome。在结果文件夹c:… \ dist \
myscript \ selenium \
webdriver中,有一个firefox文件夹,因此它只是跳过了chromedriver,这对我来说是个严重的问题,因为脚本需要与Chrome一起运行。
围绕此主题只有几个问题,但没有答案可以解决。
我正在考虑将--hidden-import MODULENAME标记添加到命令中,但是chromedriver.exe不是模块…谢谢


阅读 924

收藏
2020-06-26

共1个答案

小编典典

它应该作为二进制文件添加为二进制文件,因为它是二进制文件…
因此需要一个自定义的规范文件,其中应定义本地系统上chromedriver的路径以及相对于dist \ myscript的所需位置,因此看起来像这样:

.....
a = Analysis(['myscript.py'],
             pathex=['path\\to\\my\\script'],
             binaries=[ ('path\\to\\my\\chromedriver.exe', '.\\selenium\\webdriver') ],
             datas=None,
....

然后使用以下规范文件运行pyinstaller: pyinstaller myscript.spec myscript.py

2020-06-26