необходимость <unrar dll.hpp=""> pip установить unrardll в Ubuntu </unrar>

580
spraff

После обновления до 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?

4
can you accept the answer provided? Routhinator 6 лет назад 0

2 ответа на вопрос

3
Attie

В 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

Отлично, одно изменение необходимо для награды как бы то ни было. Wget должен быть выполнен _after_ `cd unrarsrc-5.6.8`, чтобы ваш tar -xvf unrarsrc-5.6.8` был успешным. Также `sudo` перед` make -C unrar install-lib` Routhinator 6 лет назад 1
готово - я обычно предпочитаю избегать предоставления `sudo`, но я все равно добавил его. Attie 6 лет назад 1
Достаточно справедливо, однако большинство в настольной сфере Ubuntu, которые будут использовать это, будут в контексте непривилегированного пользователя. Routhinator 6 лет назад 0
Я знаю - мне нравится, когда люди думают о привилегиях и использовании sudo для себя ;-) Attie 6 лет назад 1
Теперь, когда необходимое время прошло, награда присуждается. Благодарю. Routhinator 6 лет назад 1
-1
Holy Llama

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