我想通过cron工作来抓狂。但是,我收到此错误消息:
Traceback (most recent call last):
File "/home/togayyazar/.local/bin/scrapy", line 6, in <module>
from scrapy.cmdline import execute
ModuleNotFoundError: No module named 'scrapy'
我手动尝试从shell运行scrapy,但是没有这种错误。它工作正常。
这是我的crontab
文件:
16 13 * * * export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/togayyazar/.local/bin; scrapy shell etsy.com > /var/log/Sc.lg 2>&1
which scrapy
的输出:
/home/togayyazar/.local/bin
我也尝试过这个:
* * * * * /home/togayyazar/.local/bin/scrapy shell google.com > /var/log/Sc.lg 2>&1
和这个:
PATH=/usr/local/bin:/usr/bin:/bin:/home/togayyazar/.local/bin
* * * * * /home/togayyazar/.local/bin/scrapy shell google.com > /var/log/Sc.lg 2>&1
,但是它们都不起作用,我收到了相同的错误。我不知道问题所在。
答案 0 :(得分:0)
我发现了问题所在。我已经提到,这些crontab
属于root
。我放
PATH=/usr/local/bin:/usr/bin:/bin:/home/togayyazar/.local/bin
* * * * * /home/togayyazar/.local/bin/scrapy shell google.com > /var/log/Sc.lg 2>&1
插入togayyazar
(只是系统的普通用户)crontab,它可以正常工作。我猜想,也许root
无法访问togayyazar
的{{1}}文件。