linux - Selenium 不在 cronjob 的路径中
问题描述
我正在尝试在谷歌云平台上的 Linux/Debian 10 机器上为脚本设置一个 cronjob,但我收到关于 chromedriver 不在 PATH 中的错误:
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
我正在尝试使用此 cronjob 运行脚本:
30 2 * * * cd /home/scripts/data-pull && /usr/bin/python3 /home/scripts/data-pull/login.py
该脚本使用 selenium,如果我尝试使用 运行它python 3 login.py
,它可以正常工作。这是因为我在脚本中设置了一个变量来标识 chromedriver 所在的位置CHROMEDRIVER_PATH = '/usr/local/bin/chromedriver'
这意味着这里的问题是让 cronjob 在触发时找到 chromedriver 可执行文件。我怎么做?
非常感谢您帮助解决此问题!
解决方案
你可以试试:
- 在 crontab 本身中定义环境变量
CHROMEDRIVER_PATH='/usr/local/bin/chromedriver'
# m h dom mon dow command
30 2 * * * cd /home/scripts/data-pull && /usr/bin/python3 /home/scripts/data-pull/login.py
- 在执行脚本之前创建一个导出 env 变量的 bash 脚本。然后在你的 crontab 中使用这个脚本
export CHROMEDRIVER_PATH='/usr/local/bin/chromedriver'
cd /home/scripts/data-pull && /usr/bin/python3 /home/scripts/data-pull/login.py
- 设置环境变量
/etc/environment
推荐阅读
- robotframework - 如何验证机器人框架中的文本颜色等到页面包含?
- openedge - Progress 4gl - change font color of specific values while exporting temp table to .html file
- python - 列表和数组在存储值时有何不同?
- android - 为 android 转换旧的佳能 avi 视频
- html - 网站在运行相同浏览器的不同计算机上看起来不同
- reactjs - 如何在 creat-react-app 的 public/index.html 内的元标记中添加环境变量?
- google-sheets - 谷歌表格分层子类别扩展
- git - Docker 命令在 ARM 上失败
- android - Kotlin - 如何更改语言环境
- python - 冻结/推理模型的 get_collection 等价物是什么?