rarfile поднимает ошибку Failed the read enough data: req=65536 got=0

Этот вопрос является точной копией вопроса, однако ответа на него всё ещё нет, и мне не помогли ответы из этого вопроса.

Если кратко, эта ошибка возникает при попытке распаковать Rar архив с помощью rarfile. То есть вызов функции extract поднимает BadRarFile с сообщением "Failed the read enough data: req=65536 got=0". Я долго копался в исходном коде, и обнаружил, что ошибка возникает при попытке прочитать из дескриптора конвейера утилиты unrar - она молчит (не очень полезно) :(


Вот соседний файл распаковывает, а на этом файле выдаёт ошибку. Я гарантирую, что:

  • rarfile с помощью pip установлен
  • unrar с помощью pip установлен
  • unrar с помощью apt установлен
  • да, корректно работает в большинстве случаев, это гейзенбаг
  • да, в качестве утилиты для распаковки rarfile корректно распознаёт и использует unrar.

Любая помощь, пожалуйста.


Ответы (1 шт):

Автор решения: Aycon

Проблема была в том, что unrar, который я скачал - это одноимённая библиотека, а не оригинал. Оригинал можно скачать здесь. Из-за этого rarfile выбирал библиотеку unar вместо unrar. Я проверял это 2 недели назад, и это было правдой, но кое-что изменилось за 2 недели. Проверить это было чрезвычайно трудно, поскольку проект находится в контейнере и я не имею root прав на сервере. Мне пришлось 2 дня выяснять в чём проблема :(

→ Ссылка