Как исправить crontab в Django? - PullRequest
       10

Как исправить crontab в Django?

0 голосов
/ 25 октября 2019

У меня была проблема при реализации django-crontab в virtualenv. Я создал файл cron.py в своем приложении Django для отправки электронной почты каждую минуту, и когда я запустил его, я увидел запущенные процессы, но скрипт не был выполнен.

Я использую macOS Catalina и python3.7.4. Я запустил мое приложение Django в virtualenv. В прошлом я пытался: в

    'django_crontab',
    ...)
CRONJOBS = [
    ('*/5 * * * *', 'mypapp.cron.send_email', '>> /tmp/file.log')
]
CRONTAB_COMMAND_SUFFIX = '2>&1'

это мой файл cron.py (я тестировал скрипт без crontab, и он работал).

import smtplib, ssl


def send_email():
    port = 465
    smtp_server = "smtp.gmail.com"
    sender_email = "sender@gmail.com"
    receiver_email = "receiver@gmail.com"
    password = ""
    message = """\
        Subject: Hi there

        This message is sent from Python."""
    context = ssl.create_default_context()
    with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
     #   server.login(sender_email, password)
      #  server.sendmail(sender_email, receiver_email, message)

Затем язапустите python manage.py crontab add и python manage.py runserver.

Я увидел, что contab работал, когда я набрал crontab -l, и эта строка появилась на терминале: */1 * * * * /Users/james/Documents/pj_django/myenv/bin/python /Users/james/Documents/pj_django/myenv/manage.py crontab run 6da410d117f9ce8casc7c6cd8c8dc78 >> /tmp/file.log 2>&1 # django-cronjobs for firstproject

Но сценарий не былБег. После этого я проверил свой файл file.log, чтобы увидеть сообщение об ошибке, и увидел, что эта строка появляется каждую минуту.

ImportError: No module named 'encodings'

Current thread 0x00007fffasda35 (most recent call first):```

When I read the django-crontab doc I saw it only support from Python3.5 or lower, so I tried to change my python version from 3.7 to 3.5 with this command virtualenv -p /path/to/python3.5

However, I still receive the same errors.
How do I fix this problems?
...