ИМ
Игорь Максимов9. Dezember 2018 13:55
a bytes-like object is required, not 'str' в videokit
Доброго времени суток. Нашел приложение для конвертации видео + celery что очень радует. Не радует только то что оно отказывается работать под python3
Трейсбек прикладываю:
File "/home/django/venv/example/lib/python3.5/site-packages/django/core/handlers/exception.py", line 39, in inner response = get_response(request) File "/home/django/venv/example/lib/python3.5/site-packages/django/core/handlers/base.py", line 187, in _get_response response = self.process_exception_by_middleware(e, request) File "/home/django/venv/example/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/django/example/media/views.py", line 32, in item_create media_item.save() File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/base.py", line 796, in save force_update=force_update, update_fields=update_fields) File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/base.py", line 824, in save_base updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/base.py", line 908, in _save_table result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/base.py", line 947, in _do_insert using=using, raw=raw) File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/manager.py", line 85, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/query.py", line 1045, in _insert return query.get_compiler(using=using).execute_sql(return_id) File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 1053, in execute_sql for sql, params in self.as_sql(): File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 1006, in as_sql for obj in self.query.objs File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 1006, in <listcomp> for obj in self.query.objs File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 1005, in <listcomp> [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields] File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 955, in pre_save_val return field.pre_save(obj, add=True) File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/fields/files.py", line 292, in pre_save file.save(file.name, file, save=False) File "/home/django/venv/example/lib/python3.5/site-packages/django/db/models/fields/files.py", line 92, in save setattr(self.instance, self.field.name, self.name) File "/home/django/example/videokit/fields.py", line 198, in __set__ self.field.update_dimension_fields(instance, force = True) File "/home/django/example/videokit/models.py", line 119, in update_dimension_fields width = file.width File "/home/django/example/videokit/fields.py", line 133, in _get_width return self._get_video_dimensions()[0] File "/home/django/example/videokit/fields.py", line 164, in _get_video_dimensions self._dimensions_cache = get_video_dimensions(self) File "/home/django/example/videokit/fields.py", line 25, in get_video_dimensions width = stdout.strip(' \t\n\r') TypeError: a bytes-like object is required, not 'str' [09/Dec/2018 18:34:05] "POST /item_create/ HTTP/1.1" 500 151897
И функцию в которой ошибка:
from django.conf import settings from django.core.files import File from django.db.models.fields.files import FieldFile from django.db.models.fields.files import FileDescriptor from datetime import datetime import hashlib import os.path import subprocess from videokit.apps import VideokitConfig from videokit.tasks import generate_video def get_video_dimensions(file): path = os.path.join(settings.MEDIA_ROOT, file.name) if os.path.isfile(path): try: process = subprocess.Popen( ['mediainfo', '--Inform=Video;%Width%', path], stdout = subprocess.PIPE, stderr = subprocess.PIPE) stdout, stderr = process.communicate() if process.wait() == 0: width = int(stdout.strip(' \t\n\r')) else: return (0,0) process = subprocess.Popen( ['mediainfo', '--Inform=Video;%Height%', path], stdout = subprocess.PIPE, stderr = subprocess.PIPE) stdout, stderr = process.communicate() if process.wait() == 0: height = int(stdout.strip(' \t\n\r')) else: return (None, None) return (width, height) except OSError: pass return (None, None)
Очень надеюсь на вашу помощь. Заранее благодарен.
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.Magst du es? In sozialen Netzwerken teilen!
Kommentare
sf
- sdfsdfkp fgskpgokspdog
- 14. Oktober 2024 15:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Ergebnis:90punkte,
- Bewertungspunkte8
МВ
- Максим Васильев
- 2. Oktober 2024 04:14
Qt - Тест 001. Сигналы и слоты
- Ergebnis:68punkte,
- Bewertungspunkte-1
ЛС
- Лев Семенов
- 30. September 2024 11:04
C++ - Тест 001. Первая программа и типы данных
- Ergebnis:53punkte,
- Bewertungspunkte-4
Letzte Kommentare
Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5. Oktober 2024 07:51
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5. Februar 2024 01:50
Jetzt im Forum diskutieren
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3. Oktober 2024 04:05
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
Кирилл Гусарев27. September 2024 09:09
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
Добрый день!
Вам не нужно было сначала считать это всё из stdout?
Автор кода не я. Решение нашел на одном забугорном ресурсе.
Все работает, но я не уверен что это правильное решение. Что скажете?
Если не ошибаюсь, то decode должен возвращать str в с декодированием из utf8 в данном случае, а потом вы вырезаете лишние элементы, так что всё правильно на мой взгляд. Ну и напоследок преобразуете строку в int. В принципе всё верно. Не вижу причин, чтобы данный код был неправильным.
Спасибо за пояснение.