我正在尝试运行一个DAG,它将使用 selenium 每周在Cloud Composer上刮取一个网页。
我已经尝试过在创建WebDriver.Chrome()示例时给我上传到GCS的驱动程序给予路径,尽管我认为这不是最好的方法。
气流出现此错误
Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
如果你有任何关于更新Cloud Composer的PATH变量的提示,我将非常感激。如果我需要更多的信息,请留下评论,我会补充的。
2条答案
按热度按时间gcuhipw91#
所以没有官方的答案,Composer和GKE的Slack频道也帮不上忙。真实的的问题是二进制文件不在Composer上。现在最好的解决办法是手动ssh到你所有的GKE airflow-worker中,然后自己安装Google Chrome:https://linuxize.com/post/how-to-install-google-chrome-web-browser-on-ubuntu-18-04/
然后把你安装的正确版本的Chrome的chromedriver放在dags/dependencies文件夹中,并在示例化你的Webdriver对象时引用它。希望这对你有帮助!
siv3szwd2#
你可以创建一个Docker文件,并在Docker文件中给出安装chrome的命令。或者像Alex提到的那样,你可以在所有的工作节点上手动安装chrome。
1.按照本教程使用Cloud shell-https://towardsdatascience.com/connect-airflow-worker-gcp-e79690f3ecea连接到工作节点
1.进入worker后运行以下命令来安装Chrome-
如果出现依赖项错误,请运行以下命令,然后再次运行安装命令
要检查chrome安装,请运行-
现在检查chrome二进制文件的安装位置
复制此路径并将其放在binary_location的Selenium选项中
如果您正在寻找Chrome驱动程序,您可以在创建上面显示的webdriver对象时安装它