MacOS下Python+Selenium报错OSError: [Errno 8] Exec format error
解决OSError: [Errno 8] Exec format error的方案
这个错误的核心原因很明确——你下载的chromedriver二进制文件和你的MacOS系统架构不兼容,大概率是不小心下成了Windows或者Linux版本,而非适配Mac的版本。下面是一步步的解决步骤:
1. 清理现有问题chromedriver
先把之前安装的两个chromedriver都清理掉,避免冲突:
- 卸载brew安装的版本:
brew uninstall chromedriver - 删除你手动放置的二进制文件:
rm /Users/me/bin/chromedriver
2. 重新正确安装chromedriver
最稳妥的方式是用brew自动安装,它会自动匹配你的MacOS版本和架构:
brew install chromedriver
安装完成后,一定要验证版本兼容性:
- 执行
chromedriver --version查看驱动版本 - 打开Chrome浏览器,通过「Chrome菜单 → 关于Google Chrome」查看浏览器版本
确保chromedriver的大版本和Chrome一致(比如Chrome 62.x对应chromedriver 2.35,这也是你之前想装的版本,brew会帮你匹配正确的)
3. 确认可执行权限与PATH配置
- 先确认chromedriver的路径在系统PATH中:
输出的路径应该是brew默认安装的位置(比如which chromedriver/usr/local/bin/chromedriver),这个路径通常已经在PATH里了。 - 确保文件有可执行权限(brew安装的一般自带,但保险起见可以执行):
chmod +x $(which chromedriver)
4. 测试基础功能
写个简单的测试脚本验证chromedriver是否正常工作:
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.google.com") driver.quit()
如果这个脚本能正常打开Chrome并访问谷歌,说明驱动问题已经解决,你就可以继续运行图片爬取的滚动代码了。
另外提个小建议:你的Selenium 3.8.1版本比较老旧,如果后续遇到其他兼容性问题,可以考虑升级到对应chromedriver版本的Selenium版本,不过先解决当前的执行格式错误是首要的。
内容的提问来源于stack exchange,提问作者El Rakone
相关产品推荐
相关产品推荐

