У меня есть скрипт, который приводит к отправке электронного письма с помощью модуля smtplib.SMTP
python.
Когда я запускаю его изнутри, IDLE отправляет нормально без сообщений об ошибках. Я пытаюсь различными способами автоматизировать его с помощью crontab, чтобы каждый день в 10 утра.
Если я запускаю его из терминала, я получаю сообщение об ошибке:
$ python endofmonth.py
Traceback (most recent call last):
File "endofmonth.py", line 74, in <module>
s.send_message(msg)
AttributeError: SMTP instance has no attribute 'send_message'
Почему он работает в режиме IDLE, а не при вызове из терминала?
send_message
метод к SMTP
класс был добавлен в Python 3.2 . Вы называете сценарий, который будет выполнен с помощью python
, который является символьной ссылкой для Python 2. С тех пор send_message
метод не определяется в Python 2, Вы добираетесь AttributeError
.
Для преобладания над этим необходимо назвать сценарий с помощью Python 3.2 или более новый. Выполните его как:
python3 endofmonth.py
и это работало бы.
Вы по всей вероятности используете версию Python 3 НЕАКТИВНЫХ, которая является причиной, это работает там.