gpt4 book ai didi

python - 有没有办法将二进制文件(例如 chromedriver)与使用 Pyinstaller 编译的单个文件 app/exe 捆绑在一起?

转载 作者:行者123 更新时间:2023-11-30 22:45:58 25 4
gpt4 key购买 nike

正如我的问题的答案中所述here ,在 Pyinstaller 规范文件的 binaries 中设置 chromedriver 的路径 (binaries=[('/usr/bin/chromedriver', './selenium/webdriver')] )没有效果(除非设置不正确)。也就是说,只要 chromedriver 在 PATH 中(本例中为/usr/bin),就可以访问它。我的问题是关于在后台捆绑 chromedriver 的可能性,这样就不必在另一台计算机上手动安装它。

最佳答案

我成功地将 chromedriver 与 pyinstaller 捆绑在一起(尽管不幸的是,在我运行 exe 后,我的病毒扫描程序标记了它,但这是另一个问题)

我猜你的问题是你没有在脚本中提供正确的网络驱动程序路径(使用关键字executable_path)。另外,我将 chromedriver 作为数据文件包含在内,尽管我不确定这是否会产生影响。

这是我的例子。

sel_ex.py:

from selenium import webdriver

import os, sys, inspect # http://stackoverflow.com/questions/279237/import-a-module-from-a-relative-path
current_folder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile(inspect.currentframe() ))[0]))

def init_driver():
chromedriver = os.path.join(current_folder,"chromedriver.exe")
# via this way, you explicitly let Chrome know where to find
# the webdriver.
driver = webdriver.Chrome(executable_path = chromedriver)
return driver

if __name__ == "__main__":
driver = init_driver()
driver.get("http://www.imdb.com/")

sel_ex.spec:

....
binaries=[],
datas=[("chromedriver.exe",".")],
....

这样,chromedriver就被存储在主文件夹中了,虽然存储在哪里应该不重要,只要通过关键字executable_path保证脚本正确的路径即可

免责声明:-我没有使用单文件设置,但这应该没有什么区别。-我的操作系统是Windows

关于python - 有没有办法将二进制文件(例如 chromedriver)与使用 Pyinstaller 编译的单个文件 app/exe 捆绑在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41030257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com