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 文件。