Задать вопрос

Запуск 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 :(

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

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

# some code

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

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

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