得到这个 cron,它运行一些scrapy
代码
* * * * * cd /var/projects/project-1/scrappers && python3 runner.py
它在日志中返回此错误
Continue with error: [Errno 2] No such file or directory: 'scrapy'
Scrapy 已正确安装并且运行良好,就好像我从 cli 运行相同的命令,使用相同的用户,它可以工作。
我一直在寻找一种解决方案来应对过去几天的尝试,但不明白为什么它们不起作用,有什么想法吗?
Debian 版本:
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
更新 1
与评论相关的更多详细信息:
Cron 以与我在 CLI 上使用的用户相同的用户身份运行
该服务器的配置使用cloud-config
和scrapy
安装如下
- wget https://bootstrap.pypa.io/get-pip.py
- rm /usr/lib/python3.11/EXTERNALLY-MANAGED
- python3 get-pip.py
- pip3 install scrapy
在 CLI 上,我执行此操作时得到了此信息type scrapy
type scrapy
scrapy is /usr/local/bin/scrapy
但如果我将其添加type scrapy
为 cron 的一部分,它会返回scrapy not found
基于错误有意义的结果
问题显示从 cron 运行的可执行文件的绝对路径是
/usr/local/bin/scrapy
在搜索中发现现有问题cron 的 PATH 在哪里设置?,其中问题指出
/usr/local/bin
不在 cron 使用的默认 PATH 中。接受的答案建议添加PATH=
到 cronjob 中。此外,Stack Overflow crontab PATH 和 USER 答案 说:
因此,建议尝试编辑
crontab
以包括: