Модуль Python не нашел при запуске в кроне

Я выполняю немного сервера человечности (версия 18.04)

Прежде, чем обновить до 18,04 крон выполнялся очень хорошо.

Это - мой crontab (sudo crontab -e) :

*/5  *    * * *  PYTHONPATH=/usr/bin/python3 /usr/bin/python3 /home/louis/backup-server/main.py >> /var/log/MYbackup.log 2>&1

Но когда крон запускается, следующее зарегистрировано:

Traceback (most recent call last):
  File "/home/louis/backup-server/main.py", line 7, in <module>
    import config.config as config
  File "/home/louis/python_helpers/config/config.py", line 2, in <module>
    from dotenv import load_dotenv
ModuleNotFoundError: No module named 'dotenv'

однако, если я работаю sudo python3 /home/louis/backup-server/main.py сценарий правильно выполняется

Я действительно работал sudo pip install python-dotenv

Содержание сценариев:

# /home/louis/backup-server/main.py
# permissions : -rwxr-xr-x
import os
import requests
import json
import datetime
import sys
sys.path.insert(0, '/home/louis/python_helpers')
import config.config as config
import mail
import utils

def main():
    # some code

if __name__ == "__main__":
    main()

--

# /home/louis/python_helpers/config/config.py
# permissions : -rwxr-xr-x 
import os
from dotenv import load_dotenv
dotenv_path = os.path.join(os.path.dirname(__file__), '.env')
load_dotenv(dotenv_path)
# some config var

Я действительно имею __init__.py файл в /home/louis/python_helpers/config, сообщите мне, должен ли для получения информации я добавить.

Что прослушивает меня, большинство то, что скрипты, запущенные очень хорошо, если запущено вручную, но не как крон.

Редактирование: Я был не уверен, принадлежит ли этот вопрос здесь или на stackoverflow, поэтому скажите мне, если я должен переместить его (даже при том, что я не знаю как около создания нового вопроса),

4
задан 27 August 2018 в 23:45

3 ответа

Хорошо проблема была довольно немой, я действительно работал pip install python-dotenv и sudo pip install python-dotenv (сценарий должен базироваться разрешение получить доступ к некоторой папке), но я не сделал sudo -H pip install python-dotenv.

После выполнения этой команды крон выполняется очень хорошо.

3
ответ дан 1 December 2019 в 09:59

Проблемой является, вероятно, эта часть:

PYTHONPATH=/usr/bin/python3

потому что PYTHONPATH должен указать туда, где Ваши библиотеки. Что происходит, если Вы удаляете ту часть crontab?

0
ответ дан 1 December 2019 в 09:59

для каждого пользователя, которого Вы используете для заданий крона, необходимо сделать pip install your-library. Поскольку крон использует среду, пользователь которой выполняет задание.

0
ответ дан 1 December 2019 в 09:59

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

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