Scrapy,crontab 不工作,因为找不到模块错误
Scrapy, crontab does not work because of module not found error
我想 运行 scrapy 一个 cron-job。但是,我收到此错误消息:
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
但其中 none 有效,我收到了同样的错误。我无法弄清楚问题所在。
我想通了。我已经提到,这些 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
的 .local
文件。
我想 运行 scrapy 一个 cron-job。但是,我收到此错误消息:
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
但其中 none 有效,我收到了同样的错误。我无法弄清楚问题所在。
我想通了。我已经提到,这些 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
的 .local
文件。