Scrapy, crontab не работает из-за ошибки модуля не найдено - PullRequest
0 голосов
/ 18 июня 2019

Я хочу запустить scrapy с помощью 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'

Я вручную пытался запустить 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

но ни один из них не работал, и я получил ту же ошибку. Я не мог понять проблему.

1 Ответ

0 голосов
/ 19 июня 2019

Я разобрался в проблеме. Я упомянул, что эти 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 файлам.

...