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

Python 有没有办法将二进制文件(如chromedriver)与使用Pyinstaller编译的单个文件app/exe捆绑在一起?,python,selenium,selenium-chromedriver,pyinstaller,Python,Selenium,Selenium Chromedriver,Pyinstaller,正如对我的问题的回答中所述,在Pyinstaller规范文件(binaries=[('/usr/bin/chromedriver','./selenium/webdriver')]中的binaries中设置chromedriver的路径没有效果(除非设置不正确)。也就是说,只要chromedriver位于路径中(/usr/bin,在本例中)。我的问题是在后台捆绑chromedriver的可能性,这样它就不必手动安装在另一台机器上 我成功地将chromedriver与pyinstaller捆绑在一

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

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

我猜您的问题在于没有在脚本中为webdriver提供正确的路径(使用关键字executable\u 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/")
选择规格:

....
binaries=[],
datas=[("chromedriver.exe",".")],
....
通过这种方式,chromedriver存储在主文件夹中,尽管它存储在何处并不重要,只要脚本通过关键字executable\u path纠正路径即可

免责声明: -我没有使用“一个文件”设置,但这不会有什么区别。
-我的操作系统是windows

只是为了澄清和整合相关帖子,我相信这个问题在我在这里以不同格式发布的帖子中得到了解决:。我最后一次对发布答案的人的评论说明了原因。是的,路径就是原因