python: кодировка ошибок 'ascii', ТОЛЬКО работающая с crontab - PullRequest
0 голосов
/ 12 сентября 2018

Мой скрипт на питоне работает очень хорошо, когда я запускаю его в режиме консоли .Это написать HTML-файл, конвертировать с pdfkit в PDF и отправить письмо.Все в порядке.

Но, когда этот скрипт запускается из crontab, возникает какая-то ошибка кодирования .

if len(html) > 0:
    with open(file_html_to_pdf, 'w') as file:
        message  = '[PDF] >> writing the html file "{0}"'.format(file_html_to_pdf)
        logging.info(message)
        print(message)
        file.write(html)
else:
    raise IOError('html file is invalid !')

В crontab я сделал это:

# VARIABLES FOR PYTHON
PYTHONIOENCODING=utf8


*/5 * * * * /home/users/my-user/my-project/env/bin/python /home/users/my-user/my-project/cronjob.py > /var/log/apps/my-project/cron_error_my-project.log 2>&1

А в bashrc:

# set locale utf-8 in french.....et voilà
export PYTHONIOENCODING=utf-8
export LC_ALL=fr_FR.utf-8
export LANG="$LC_ALL"

Сообщение об ошибке:

UnicodeEncodeError: 'ascii' codec can't encode character '\xf4' in position 37: ordinal not in range(128)
...
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 400: ordinal not in range(128)
...
Message: ('<!> Error  => ', UnicodeEncodeError('ascii', '<!DOCTYPE html>\n<head>\n  <title>---

Python версия:

$ /home/users/my-user/my-project/env/bin/python --version
Python 3.4.2

Донне понимаю почему :(. Кто-нибудь может мне помочь?

Спасибо

F.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...