OSError: [Errno 8] Exec format error: '/home/ec2-user/Desktop/chromedriver' error using Chromedriver in AWS EC2 ARM flavour machine

OSError: [Errno 8] Exec format error: '/home/ec2-user/Desktop/chromedriver' error using Chromedriver in AWS EC2 ARM flavour machine

我有一台来自 AWS 的带有 ARM 风格的 EC2 机器。我安装了 Python 3,然后使用 pip3 安装了 Selenium。然后我从 here 下载了 Linux 版本的 chrome 驱动程序,将其解压缩并将 chromedriver 文件保存在桌面中。当我尝试 运行 这样的代码时:

driver = webdriver.Chrome('/home/ec2-user/Desktop/chromedriver')

我收到这个错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ec2-user/.local/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
    service_log_path, service, keep_alive)
  File "/home/ec2-user/.local/lib/python3.7/site-packages/selenium/webdriver/chromium/webdriver.py", line 90, in __init__
    self.service.start()
  File "/home/ec2-user/.local/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 76, in start
    creationflags=self.creationflags)
  File "/usr/lib64/python3.7/subprocess.py", line 800, in __init__
    restore_signals, start_new_session)
  File "/usr/lib64/python3.7/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: '/home/ec2-user/Desktop/chromedriver'

知道如何解决这个问题吗?可能是来自其他地方的 Linux 风味和 chrome 驱动程序的不同组合?

这个错误信息...

OSError: [Errno 8] Exec format error: '/home/ec2-user/Desktop/chromedriver'

...表示您使用的 ChromeDriver 可执行文件格式不正确。


深入探讨

当您使用 AWS EC2 ARM 风格时,您需要使用 ARM64ARM7 变体 ChromeDriver.

另外,您下载的ChromeDriver v100.x where as the latest version of 好像是Chrome版本99.0.4844.84

并且您需要 ChromeDriver 的匹配版本,根据安装的 Google Chrome系统内.


解决方案

正如 @Mark B 在他的 comment you need to download the matching version of ChromeDriver as per the discussion Compile ChromeDriver on ARM

中指出的