Alex
Traceback (most recent call last): File "C:/Users/Админ/PycharmProjects/bot/rar.py", line 1, in <module> from unrar import rarfile File "C:\Users\Админ\AppData\Local\Programs\Python\Python37-32\lib\site-packages\unrar\rarfile.py", line 26, in <module> from unrar import unrarlib File "C:\Users\Админ\AppData\Local\Programs\Python\Python37-32\lib\site-packages\unrar\unrarlib.py", line 45, in <module> unrarlib = ctypes.WinDLL(lib_path) File "C:\Users\Админ\AppData\Local\Programs\Python\Python37-32\lib\ctypes\__init__.py", line 356, in init self._handle = _dlopen(self._name, mode) OSError: [WinError 193] %1 не является приложением Win32
Danil
Alex
from unrar import rarfile rar = rarfile.RarFile('D:\Опера загрузки\\1.rar') rar.extractall()
Alex
вот код
Anonymous
Я думаю либа нужна
Anonymous
Там длопен не может рар найти
Alex
так она стоит
Anonymous
А лицензия рара не позволяет распространять либу вместе с модулем для питона
Anonymous
Код правильный но нужна либа от рара
Anonymous
Попробуй поставить винрар
Alex
но он стоит
Anonymous
Ну раз смешно то сам ебись
Alex
ну погоди
Alex
у меня стоит винрар
Alex
Vladimir
поставь точку останова здесь: unrarlib = ctypes.WinDLL(lib_path) и посмотри, гдк либа ищет ddl
Alex
так секунду
Alex
для тупых теперь
Alex
как точку ставить
Alex
Alex
так?
Vladimir
так?
угу
Alex
и теперь запускать?
Alex
кек, чот ниче не отличается
Alex
так же вырубилось
Vladimir
и теперь запускать?
да, в режиме дебага
Vladimir
https://pypi.org/project/unrar/ - ты видимо инструкцию пропустил для винды
Alex
так вроде все так сделал
Alex
что именно пропустил
Vladimir
так вроде все так сделал
For Windows you can also download the already compiled library (http://www.rarlab.com/rar/UnRARDLL.exe).
Alex
я ее там и скачал
Alex
распаковал в эту папку
Alex
Alex
указал путь на нее
Alex
он то ее от туда и берет
Vladimir
он то ее от туда и берет
проблема похоже в том, что у тебя не совпадает битность python и этой либы
Alex
так там есть видишь папка х64
Alex
и в ней 64 версия либы
Alex
и я пробовал обе указывать
Alex
и оба раза одинаковая ошибка
Danila
Что лучше использовать для хранения большого кол-ва записей (5к) в json формате - MongoDB или в файл писать?
Anonymous
Любую базу, хоть скулайт
Vladimir
так там есть видишь папка х64
https://www.rarlab.com/rar_add.htm не вижу здесь версии под 64-битную винду
Vladimir
и либа обновлялась последний раз в 2016
Vladimir
Возможно, что 64-битки нет
Alex
Alex
что это такое тогда
Vladimir
что это такое тогда
а что там в readme написано?
Danila
5к - это не большое количество записей)
возможно, для txt файла - довольно большое
Alex
а что там в readme написано?
This is x64 version of unrar.dll.
Danila
Нет
тогда какое кол-во записей можно считать большим?
Anonymous
Но это конечно если не построчно обрабатывать
Anonymous
Пандас грузил 200к строк моментально
Anonymous
И так же моментально выполнял вычисления, сравнения и тп
Vladimir
и я пробовал обе указывать
а как ты указывал путь до 64?
Alex
а как ты указывал путь до 64?
C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.lib
Alex
длл тоже пробовал
Vladimir
а как ты указывал путь до 64?
в эту переменную окружения UNRAR_LIB_PATH положи путь до версии 64-бита, судя по выводу с картинки выше, он сразу использует путь до либы, т.е. до версии 32 бита и не использует функцию find_library
Alex
Alex
с длл вместо либ соответсвенно то же самое
Vladimir
и в точке останова в libpath этот путь попадает?
Vladimir
а python у тебя 64 битный?
Vladimir
а python у тебя 64 битный?
\Python37-32\lib\ctypes - судя по стэктрейсу он у тебя 32-битный.
Alex
а python у тебя 64 битный?
32 наверное. но с 32 тоже не работает
Alex
я ж 32 тоже ставил
Alex
в либу
Vladimir
попробуй путь прописать именно до 32-битной ddl
Alex
прописывал(
Vladimir
если нет, то я хз)) может 10 не может запустить эту 32-версию
Alex
рофланебало еще в том что я поставил просто rarfile
Alex
а он хочет использовать unrar
Alex
какого то хера
Alex
то есть мне даже нечем заменить