UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0x89 в позиции 270: неверный начальный байт – почему? [закрPython

Программы на Python
Ответить
Anonymous
 UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0x89 в позиции 270: неверный начальный байт – почему? [закр

Сообщение Anonymous »

Я делаю сверхпростой парсер веб-страниц, используя Python/Beautifulsoup.
Столкнувшись с ключевой информацией, отображаемой в виде PNG-изображения, мне пришлось обратиться к PIL/Pytesseract.
Код чрезвычайно прост и работает, когда выполняется от имени моего пользователя. Изображение загрузилось, как показывает команда печати, но image_to_string генерирует ошибку.

Код: Выделить всё

    encoded_img = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='

# Decode and open as image
img_data = base64.b64decode(encoded_img)
img_bytes = BytesIO(img_data)
img = Image.open(img_bytes)
print(img.format, img.size, img.mode)

# Use pytesseract to extract number
custom_config = r'--psm 7 -c tessedit_char_whitelist=0123456789.,'

return pytesseract.image_to_string(img, config=custom_config).strip()
Однако при запуске задачи cron (после разрешения venv и зависимостей) я получаю невозможное сообщение из заголовка:

Код: Выделить всё

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 270: invalid start byte
Попытка установить переменные env LANG или LC_* не помогла.
Я использую python3 и macos-sonoma — не уверен, имеет ли это значение.
Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/798 ... 270-invali
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»