4

После обновления до Ubuntu 18.04 Caliber выдает эту ошибку при открытии файла .cbr:

calibre, version 3.21.0
...
    File "/usr/lib/calibre/calibre/utils/unrar.py", line 53, in extract
       from unrardll import extract
ImportError: No module named unrardll

Хорошо, итак...

#> sudo pip install unrardll

...

src/unrardll/wrapper.cpp:19:10: fatal error: unrar/dll.hpp: No such file or directory
#include <unrar/dll.hpp>
      ^~~~~~~~~~~~~~~
compilation terminated

Хм ...

#> dpkg -S unrar/dll.hpp
dpkg-query: no path found matching pattern *unrar/dll.hpp*

Как установить модуль Python unrardll в Ubuntu 18.04?

2 ответа2

3

Исходные файлы unrar , файлы для разработки и библиотеки не упакованы для Ubuntu, поэтому вам нужно получить их и установить их самостоятельно ...

Существует скачать «UnRAR источник» на «статистов» странице rarlab.com - используйте эту ссылку с wget ниже.

Вам нужно будет собрать и установить библиотеку, а затем использовать --global-option pip чтобы указать ее заголовкам.

Следуйте ниже:

apt update
apt install -y build-essential python-pip wget
mkdir unrarsrc
cd unrarsrc
wget https://rarlab.com/rar/unrarsrc-5.6.8.tar.gz
tar -xvf unrarsrc-5.6.8.tar.gz
make -C unrar lib
sudo make -C unrar install-lib
sudo pip install --global-option=build_ext --global-option="-I$(pwd)" unrardll
$ python
Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import unrardll
>>>

Обратите внимание, что после этого библиотека UnRAR будет находиться под вашим контролем, и, таким образом, вы будете нести ответственность за ее обновление. Утилита unrar будет по-прежнему предоставляться менеджером пакетов, поэтому будет обновляться как обычно.


Существует PPA, который предоставляет пакеты, необходимые для этого, но самая последняя поддерживаемая версия Ubuntu - " Saucy Salamander " (13.10), последний раз обновленный ~ 5 лет назад с помощью unrar v5.0.14.

https://launchpad.net/~trinitronx/+archive/ubuntu/unrar-nonfree

-1

сначала сделайте make lib make install-lib затем попробуйте pip install unrar

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .