Tenho esse cron, que executa algum scrapy
código
* * * * * cd /var/projects/project-1/scrappers && python3 runner.py
Ele retorna esse erro nos logs
Continue with error: [Errno 2] No such file or directory: 'scrapy'
O Scrapy está instalado corretamente e funcionando bem. Se eu executar o mesmo comando na CLI, com o mesmo usuário, ele funciona.
Estou procurando uma solução para isso, tentei algumas abordagens nos últimos dias e não consigo entender por que não está funcionando. Alguma ideia?
Versão Debian:
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
Atualização 1
Mais detalhes relacionados aos comentários:
O Cron está sendo executado com o mesmo usuário que eu uso na CLI
Este servidor foi configurado usando cloud-config
e scrapy
a instalação se parece com isso
- wget https://bootstrap.pypa.io/get-pip.py
- rm /usr/lib/python3.11/EXTERNALLY-MANAGED
- python3 get-pip.py
- pip3 install scrapy
Na CLI eu obtive isso ao fazertype scrapy
type scrapy
scrapy is /usr/local/bin/scrapy
Mas se eu adicionar type scrapy
como parte do cron ele retorna scrapy not found
o que faz sentido com base no erro
A questão mostra que o caminho absoluto do executável a ser executado a partir do cron é
/usr/local/bin/scrapy
Em uma busca, encontrei a pergunta existente Onde o PATH do cron está definido?, onde a pergunta observa que
/usr/local/bin
não está no PATH padrão usado pelo cron. A resposta aceita recomendou adicionarPATH=
ao cronjob.Além disso, a resposta do crontab PATH e USER do Stack Overflow diz:
Portanto, sugiro tentar editar
crontab
para incluir: