Python OSError:[Errno 8]MacOS上GeckoDriver和Selenium的Exec格式错误

Python OSError:[Errno 8]MacOS上GeckoDriver和Selenium的Exec格式错误,python,selenium,firefox,selenium-webdriver,geckodriver,Python,Selenium,Firefox,Selenium Webdriver,Geckodriver,我正在使用firefox gecko驱动程序制作一个机器人,我不断收到机器人的错误消息,我发现消息的来源是: from selenium import webdriver browser= webdriver.Firefox() 台词 我已经将错误消息中提到的每个文件都添加到path中,包括gecko驱动程序、firefox和其他较小的文档。我完全不知所措 以下是错误消息: Traceback (most recent call last): File "/usr/local/bin/f

我正在使用firefox gecko驱动程序制作一个机器人,我不断收到机器人的错误消息,我发现消息的来源是:

from selenium import webdriver

browser= webdriver.Firefox()
台词

我已经将错误消息中提到的每个文件都添加到path中,包括gecko驱动程序、firefox和其他较小的文档。我完全不知所措

以下是错误消息:

Traceback (most recent call last):
  File "/usr/local/bin/fuckobot1.py", line 3, in <module>
    browser= webdriver.Firefox()

File "/Users/'myname'/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
    self.service.start()

File "/Users/'myname'/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child

raise child_exception
OSError: [Errno 8] Exec format error
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/fuckobot1.py”,第3行,在
browser=webdriver.Firefox()
文件“/Users/'myname'/Library/Python/2.7/lib/Python/site packages/selenium/webdriver/firefox/webdriver.py”,第164行,在__
self.service.start()
文件“/Users/'myname'/Library/Python/2.7/lib/Python/site-packages/selenium/webdriver/common/service.py”,第76行,开始
标准偏差=管道)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第710行,在__
错误读取,错误写入)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第1335行,在_execute_child中
引发子对象异常
OSError:[Errno 8]Exec格式错误

这可能就是这个问题的答案,
当它显示类似的内容时,您的Firefox配置文件将无法加载。它可能丢失或无法访问。
实际问题是,Firefox 48.0或更高版本不适用于selenium 3.0.0或更高版本。
所以请检查你的版本。 因此,要使其正常工作,您需要使用最新的selenium和相应的geckodriver版本进行更新,以修复此问题

然后试试基本命令

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox() 
此错误消息

OSError: [Errno 8] Exec format error
…意味着调用的GeckoDriver二进制文件格式不正确

您的主要问题是GeckoDriver二进制格式与底层操作系统的不兼容性

当您在MacOS上时需要从下载geckodriver-v0.23.0-MacOS.tar.gz,解压/解压它,并通过参数
可执行路径
提供geckodriver的绝对路径,如下所示:

from selenium import webdriver

browser= webdriver.Firefox(executable_path='/path/to/geckodriver')

这可能是因为使用的可执行文件不适用于您的操作系统,您使用的是哪个操作系统?我使用的是MacOS Sierra版本10.12.6,您使用的是哪些可执行文件?我使用的是geckodriver版本0.23.0,非常抱歉,我是一个初学者,他答应一个朋友他会帮他做一个机器人,这让他吃不消。我还有一个小问题,我把geckodriver放到了路径中,但仍然得到错误消息“geckodriver”可执行文件需要在路径中。我不完全确定这意味着什么。请澄清。@Pyananana我的意思是你能在跟踪日志的同时提出一个新的问题吗?我试过了,但由于某些原因,我已经达到了极限,我问得太多了。堆栈溢出将不让我请帮助,我不知道该怎么办