Уважаемые друзья, мне нужна помощь. Я установил библиотеку libolm, следуя инструкциям, представленным ниже: <blockquote>Обратите внимание, что это устанавливает nio без поддержки сквозного шифрования. Для поддержки e2ee требуется python-olm, который требует библиотеку libolm на C (версия 3.x). На Debian и Ubuntu можно установить пакет libolm-dev с помощью apt-get. На Fedora можно установить пакет libolm-devel с помощью dnf. На MacOS можно установить пакет libolm с помощью brew. Убедитесь, что установлена версия 3.<br/> После установки libolm можно установить версию nio с поддержкой e2ee с помощью pip:<br/> $ pip install matrix-nio[e2e]</blockquote> Я выполнил следующие команды для установки libolm: <blockquote> git clone <a href="https://gitlab.matrix.org/matrix-org/olm.git" rel="nofollow">https://gitlab.matrix.org/matrix-org/olm.git</a><br/> cd olm<br/> mkdir build<br/> cmake . -Bbuild<br/> cmake --build build<br/> cd build/tests<br/> ctest .<br/> </blockquote> Все тесты завершились без ошибок. Затем я установил следующую библиотеку: ``` pip install python-olm pip install matrix-nio[e2e] ``` Обе установки прошли успешно, но при попытке запустить код с импортом библиотек, например, `import olm` или `import nio`, я получаю следующую ошибку: <blockquote> import olm<br/> File "C:\Users\Nelson\AppData\Local\Programs\Python\Python38\lib\site-packages\olm\__init__.py", line 24, in <br/> from .utility import ed25519_verify, OlmVerifyError, OlmHashError, sha256<br/> File "C:\Users\Nelson\AppData\Local\Programs\Python\Python38\lib\site-packages\olm\utility.py", line 37, in <br/> from _libolm import ffi, lib # type: ignore<br/> ImportError: DLL load failed while importing _libolm: Не найден указанный модуль. </blockquote> Можете подсказать, нужно ли что-то делать с собранной библиотекой? Не игнорируйте, пожалуйста.
Ваши шаги по установке библиотеки `libolm` и `python-olm` кажутся корректными, однако ошибка, которую вы получаете, указывает на то, что Python не может найти динамическую библиотеку (DLL) `libolm`, необходимую для работы `python-olm`. Вот несколько шагов, которые могут помочь вам исправить эту проблему: 1. **Проверьте наличие созданной библиотеки**: Убедитесь, что после сборки `libolm` у вас есть библиотеки в папке сборки. Обычно они находятся в `build` или в подкаталоге вроде `lib`. Вам нужно найти файлы, в названии которых содержится `olm`, и заканчиваются на `.dll`. 2. **Добавьте вашу библиотеку в PATH**: Если вы нашли библиотеку `libolm.dll`, вам нужно убедиться, что она доступна для вашей системы. Для этого вы можете: - Скопировать `libolm.dll` в одну из папок, уже находящихся в системной переменной PATH (например, в `C:\Windows\System32` или в папку Python, где установлены остальные модули). - Или вы можете добавить путь к папке, где находится `libolm.dll`, в переменную среды PATH. Это можно сделать, выполнив следующее: - Нажмите `Win + R`, введите `sysdm.cpl` и нажмите Enter. - Перейдите на вкладку "Дополнительно", затем нажмите на кнопку "Переменные среды". - Найдите переменную `Path` в списке системных переменных, выберите её и нажмите "Изменить". - Добавьте путь к папке, содержащей `libolm.dll`, и сохраните изменения. 3. **Перезагрузите терминал или систему**: После внесения изменений в PATH, закройте и откройте терминал или даже полностью перезагрузите компьютер, чтобы изменения вступили в силу. 4. **Проверьте совместимость версий**: Убедитесь, что версия `libolm`, которую вы использовали, совместима с версией `python-olm`, установленной через pip. Иногда несовпадение версий может вызывать подобные проблемы. 5. **Проверьте, правильно ли Python использует библиотеку**: Вы можете попытаться локально установить `libolm` в одноименную папку на уровне проекта и убедиться, что `python-olm` может ее увидеть. Если после выполнения всех этих шагов ошибка продолжает возникать, дайте мне знать, и я постараюсь помочь вам дальше!
а где у вас в системе лежит готовая библиотека?
If anyone comes across this issue in Python > 3.8 with Windows, dll's are only loaded from trusted locations https://docs.python.org/3/whatsnew/3.8.html#ctypes This can be fixed by adding the dll path using os.add_dll_directory("PATH_TO_DLL")