32位Ubuntu18.4下ChromeDriver执行格式错误问题求助
解决32位Ubuntu18.04下ChromeDriver Exec格式错误及多文件清理问题
问题根源
你碰到的OSError: [Errno 8] Exec format error: 'chromedriver'是核心矛盾——你下载了64位的ChromeDriver,但你的系统是32位Ubuntu,64位二进制程序在32位系统里根本跑不起来。再加上系统里堆了一堆冗余的chromedriver文件,很容易让程序找错版本,得先把无用的清掉,再装适配的版本。
第一步:清理冗余的chromedriver文件
先把系统里没用的、不兼容的文件删掉,避免后续混淆:
- 删掉你手动下载的64位chromedriver:
sudo rm /usr/bin/chromedriver rm ~/Downloads/chromedriver - 删掉Windows版本的chromedriver(你用的是Ubuntu,这些完全没用):
rm ~/instagramBot/instaDM/instagram-auto-dm/instagram-auto-dm/chromedriver.exe rm ~/instagramBot/instaDM/italyorder/chromedriver.exe rm ~/instagramBot/instaautopost/auto-Instagram-posting-bot/chromedriver.exe rm ~/Downloads/chromedriver_win32*.zip - 删掉Python2.7里的instapy_chromedriver相关文件(你现在用Python3.6跑脚本,Python2的这些包派不上用场):
rm -rf ~/.local/lib/python2.7/site-packages/instapy_chromedriver* rm ~/.cache/pip/wheels/35/91/f2/52f5dd4aa6be444aba5b4de86a8bc6db24a975f616b1a14a5e/instapy_chromedriver-2.44-py2-none-any.whl rm ~/.cache/pip/wheels/77/e7/8a/d92d1054fa5679b3ae2950df04f18569056bb081bc0dfc6cf7/instapy_chromedriver-2.46-py2-none-any.whl - 删掉PopcornTime里的chromedriver(如果你不用这个软件的话):
sudo rm /opt/popcorntime/chromedriver
第二步:安装适配32位Ubuntu的ChromeDriver(对应Chrome87版本)
你的Chrome是87.0.4280.66版本,必须找32位、版本号完全匹配的ChromeDriver:
- 先卸载现有版本不对的chromium-chromedriver:
sudo apt remove --purge chromium-chromedriver - 重新安装对应Chrome87的32位chromium-chromedriver:
sudo apt update sudo apt install chromium-chromedriver=87.0.4280.66-0ubuntu0.18.04.1 - 验证这个chromedriver是32位的:
输出里如果有file /usr/lib/chromium-browser/chromedriverELF 32-bit LSB executable,说明是32位兼容的,没问题。 - 给它创建软链接到
/usr/bin,让Python能顺利找到:sudo ln -sf /usr/lib/chromium-browser/chromedriver /usr/bin/chromedriver - 确保它有执行权限:
sudo chmod +x /usr/bin/chromedriver
第三步:验证修复效果
跑脚本前先单独测试chromedriver是否能正常启动:
chromedriver --version
如果输出ChromeDriver 87.0.4280.66 (...),说明安装没问题。之后再运行你的instaabot.py,应该就不会再出现Exec格式错误了。
内容的提问来源于stack exchange,提问作者mikegrep
相关产品推荐
相关产品推荐

