Запуск Python-скрипта в cron, как вывести кириллицу?

Приветствую.
Вводные данные: на сервере (Ubuntu) по крону отрабатывает питоний скрипт (python 3).
Проблема: как только попадается кириллица (например: print('Привет')) - скрипт падает с исключением вида: "UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)".
Если запускать в консоли - все ок.
В python 2 такое решалось небольшим хаком:
import sys
reload(sys)                                   
sys.setdefaultencoding('utf-8')

Однако в третьем питоне убрали setdefaultencoding :(

Как же тут быть? Убирать кириллицу или откатываться на второй питон не очень хочется
  • Вопрос задан
  • 3108 просмотров
Решения вопроса 1
overmes
@overmes
попробуйте выставить:
export PYTHONIOENCODING=UTF-8
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
karabanov
@karabanov
Системный администратор
Добавьте магический комментарий # -*- coding: utf-8 -*- в начало вашего скрипта, вот так:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# some code

И надписи на кириллице начнут выводится адекватно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы