Crontab - Linux - EC2 - Python - Никакой модуль назвал 'панд'

Я пытаюсь запустить скрипт Python (это - webscraping) через crontab на EC2. Но это не работает.

Вот моя задача:

SHELL = /bin/bash
PATH = /usr/local/sbin:/usr/local / bin: / sbin: / bin: / usr / sbin: / usr / bin
* * / 2 * * * / usr / bin / python /home/ec2-user/LATAM_v1.py

Я получил электронные письма от системы, которая говорит, что панды не установлены.

Но это установлено.

Я также запустил скрипт непосредственно в оболочке:

/home/ec2-user/LATAM_v1.py
/ usr / bin / python home / ec2-user / LATAM_v1.py

Работали оба пути.

Я уже проверил состояние крона и демона, если они работают, который они.

Вот ошибка:

From root@ip-172-31-3-2.sa-east-1.compute.internal  Sun Apr 12 10:10:02 2020
Return-Path: <root@ip-172-31-3-2.sa-east-1.compute.internal>
Received: from ip-172-31-3-2.sa-east-1.compute.internal (localhost [127.0.0.1])
        by ip-172-31-3-2.sa-east-1.compute.internal (8.14.4/8.14.4) with ESMTP id 03CDA2Lb008039
        for <root@ip-172-31-3-2.sa-east-1.compute.internal>; Sun, 12 Apr 2020 10:10:02 -0300
Received: (from root@localhost)
        by ip-172-31-3-2.sa-east-1.compute.internal (8.14.4/8.14.4/Submit) id 03CDA2W8008038;
        Sun, 12 Apr 2020 10:10:02 -0300
Date: Sun, 12 Apr 2020 10:10:02 -0300
Message-Id: <202004121310.03CDA2W8008038@ip-172-31-3-2.sa-east-1.compute.internal>
From: root@ip-172-31-3-2.sa-east-1.compute.internal (Cron Daemon)
To: root@ip-172-31-3-2.sa-east-1.compute.internal
Subject: Cron <root@ip-172-31-3-2> /usr/bin/python /home/ec2-user/LATAM_v1.py
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

Traceback (most recent call last):
  File "/home/ec2-user/LATAM_v1.py", line 10, in <module>
    import pandas as pd
ModuleNotFoundError: No module named 'pandas'

This is the version of the machine:
NAME = "Amazon Linux AMI"
VERSION = "2018.03"
ID = "amzn"
ID_LIKE = "rhel fedora"
PRETTY_NAME = "Amazon Linux AMI 2018.03"

Я уже рассмотрел Stackoverflow, я получил много ответов и и т.д., но ничто не работало здесь.

Я не знаком с Linux. Если кто-либо знает, как решить его и объяснить его шаг за шагом, я был бы к счастью.

Большое спасибо.

0
задан 13 April 2020 в 16:34

1 ответ

Проблема вероятна проблема пути Python. Пакеты Python могут быть установлены в нескольких местоположениях:

/home/username/.local/lib/python3.6/site-packages
/usr/local/lib/python3.6/dist-packages/
~/project_path/venv/lib/python3.6/dist-packages/

Вы, вероятно, установили панд в первом месте, и когда выполнения крона это не имеет того расположения в пути Python. Можно зафиксировать это путем устанавливания пути Python в сценарии крона (используйте корректную версию Python):

 PYTHONPATH=/home/username/.local/lib/python3.6/site-packages

Или можно установить панд глобально:

 sudo -H pip install pandas

Или можно учиться использовать виртуальные среды, в этом случае, Вы активировали бы свою среду сначала, или непосредственно в кроне, разделенном &&, или создали бы сценарий оболочки, чтобы активировать и запустить Ваш Python от и вызов это от крона. Если у Вас есть несколько проектов, которые полагаются на различные версии Python или библиотек, это - предпочтительный метод обработки этого.

0
ответ дан 25 April 2020 в 10:49

Другие вопросы по тегам:

Похожие вопросы: