如何将 chromedriver 包含在 pyinstaller 中?

问题描述 投票:0回答:2

我正在使用 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 不是模块...... 谢谢

python windows selenium selenium-chromedriver pyinstaller
2个回答
12
投票

它应该作为二进制文件添加,因为它是一个二进制文件...
因此,需要一个自定义规范文件,其中应定义本地系统上 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


0
投票

我遇到了这个问题,并通过将这些代码添加到我的规范文件中来解决它

这些路径适用于 Windows 操作系统 ........................

a = Analysis(
['myproject.py'],
pathex=[],
binaries=[('C:\\chromedriver\\chromedriver.exe','Drivers')],
datas=None,

.................

然后按 Shift + 右键单击我的项目文件夹以打开 PowerShell 窗口 然后用这个

pyinstaller myproject.spec myproject.py

© www.soinside.com 2019 - 2024. All rights reserved.