Ubuntu环境下运行Telegram脚本Bot时Chrome启动失败求助
解决Ubuntu上Chromedriver启动失败的问题
嘿,我之前也碰到过完全一样的情况!看你的报错信息,chromedriver=2.29这个版本实在太老了(2017年的版本),和Ubuntu上默认安装的Chrome版本完全不兼容,再加上Ubuntu无桌面环境下的特殊配置要求,才导致Chrome启动异常。下面一步步来搞定:
1. 先搞定Chrome浏览器的版本
先看看你当前Ubuntu上的Chrome版本:
google-chrome --version
要是还没装Chrome,直接用命令装最新稳定版:
sudo apt update sudo apt install google-chrome-stable
2. 匹配对应版本的Chromedriver
Chromedriver必须和Chrome的主版本号完全一致(比如Chrome是118.x,就下118.x的Chromedriver)。
- 去Chrome官方的Chromedriver仓库找和你Chrome版本匹配的Linux版本压缩包下载
- 解压后放到系统路径里,给上执行权限:
unzip chromedriver_linux64.zip sudo mv chromedriver /usr/local/bin/ sudo chmod +x /usr/local/bin/chromedriver
最后验证下版本是否对应:
chromedriver --version
3. 补全Ubuntu上Chrome需要的依赖
有时候Ubuntu会缺一些库导致Chrome启动失败,直接装这些常用依赖:
sudo apt install -y libnss3 libgconf-2-4 libxss1 libappindicator1 libindicator7
4. 给脚本加上无头模式配置(关键!)
Ubuntu服务器一般没有桌面环境,Chrome默认没法启动图形界面,所以必须在你的Bot脚本里加上无头模式的参数。比如用Selenium的话,改成这样:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 启用新的无头模式,比旧版更稳定 chrome_options.add_argument('--headless=new') # 禁用沙箱,Ubuntu上必须加这个参数 chrome_options.add_argument('--no-sandbox') # 解决/dev/shm空间不足的问题 chrome_options.add_argument('--disable-dev-shm-usage') # 无头模式不需要GPU加速,直接禁用 chrome_options.add_argument('--disable-gpu') driver = webdriver.Chrome(options=chrome_options)
5. 先手动测试Chrome能不能跑
先在终端里手动跑一遍Chrome,确认没问题:
google-chrome --headless=new --no-sandbox --disable-gpu https://www.google.com
如果这条命令能正常执行不报错,再去运行你的Telegram Bot脚本,应该就能正常启动Chromedriver了。
内容的提问来源于stack exchange,提问作者Kleber Breves
相关产品推荐
相关产品推荐

