使用Chromedriver在另一台PC上运行pyinstaller

我正在尝试在pyinstaller的可执行文件中添加Chromedriver。虽然这是可能的,但似乎在尝试在另一台计算机上运行此错误消息。

我已经尝试了一些职位,包括本的一个,但不幸的是,这并没有提供预期的效果。最好的情况是,当chrome exe位于同一文件夹中时,我可以在自己的计算机上运行它,这无济于事。

代码1:

主程序

from selenium import webdriver

driver = webdriver.Chrome()

在另一台PC上运行时,我得到的是:

错误1:

找不到Chrome路径

   C:\Users\Aperture Science\Desktop\1>123.exe

Traceback (most recent call last):

File "site-packages\selenium\webdriver\common\service.py", line 74, in start

File "subprocess.py", line 709, in __init__

File "subprocess.py", line 997, in _execute_child

FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "main.py", line 42, in <module>

File "main.py", line 33, in main

File "site-packages\selenium\webdriver\chrome\webdriver.py", line 68, in __init__

File "site-packages\selenium\webdriver\common\service.py", line 81, in start

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

[2228] Failed to execute script main

我该如何解决?

我从提供的链接中得到什么:

代码2:

from selenium import webdriver

import os, sys, inspect

current_folder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile(inspect.currentframe() ))[0]))

chromedriver = os.path.join(current_folder,"chromedriver.exe")

driver = webdriver.Chrome(executable_path = chromedriver)

driver.get("http://www.imdb.com/")

需要设置路径中的Chrome exe,捆绑的Chrome无法读取。因此,包装的铬无法正常使用。

回答:

用于--add-binary在应用程序中捆绑驱动程序:

pyinstaller -F --add-binary "C:\drivers\chromedriver.exe";"." script.py

并用于sys._MEIPASS获取提取驱动程序的文件夹:

import sys, os, time

from selenium import webdriver

if __name__ == "__main__":

if getattr(sys, 'frozen', False):

# executed as a bundled exe, the driver is in the extracted folder

chromedriver_path = os.path.join(sys._MEIPASS, "chromedriver.exe")

driver = webdriver.Chrome(chromedriver_path)

else:

# executed as a simple script, the driver should be in `PATH`

driver = webdriver.Chrome()

driver.get("https://stackoverflow.com")

time.sleep(5)

driver.quit()

以上是 使用Chromedriver在另一台PC上运行pyinstaller 的全部内容, 来源链接: utcz.com/qa/402660.html

回到顶部