Запуск скрипта Python в IDLE работает, но в терминале я получаю экземпляр SMTP не имеет атрибут «send_message» ошибка

У меня есть скрипт, который приводит к отправке электронного письма с помощью модуля 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, а не при вызове из терминала?

2
задан 11 September 2015 в 00:54

1 ответ

send_message метод к SMTP класс был добавлен в Python 3.2 . Вы называете сценарий, который будет выполнен с помощью python, который является символьной ссылкой для Python 2. С тех пор send_message метод не определяется в Python 2, Вы добираетесь AttributeError.

Для преобладания над этим необходимо назвать сценарий с помощью Python 3.2 или более новый. Выполните его как:

python3 endofmonth.py

и это работало бы.

Вы по всей вероятности используете версию Python 3 НЕАКТИВНЫХ, которая является причиной, это работает там.

0
ответ дан 11 September 2015 в 00:54

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

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