正如在回答我的问题提到这里,设置在道路chromedriver binaries在Pyinstaller规范文件(binaries=[('/usr/bin/chromedriver', './selenium/webdriver')])没有效果(除非它被设置不正确)。也就是说,只要chromedriver在PATH中(本例中为/ usr/ bin),就可以对其进行访问。我的问题涉及在后台捆绑chromedriver的可能性,因此不必手动将其安装在另一台计算机上。
binaries
binaries=[('/usr/bin/chromedriver', './selenium/webdriver')]
我成功地将chromedriver与pyinstaller捆绑在一起(尽管不幸的是,在我运行exe后,我的病毒扫描程序将其标记了出来,但这是另一个问题)
我猜您的问题是您没有在脚本中使用WebEx驱动程序提供正确的路径(使用关键字execute_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被存储在主文件夹中,尽管它的存储位置无关紧要,只要脚本通过关键字execute_path的正确路径即可。
免责声明:-我没有使用单一文件设置,但这没有什么区别。-我的操作系统是Windows