Как правильно импортировать динамическую библиотеку?
Есть динамическая библиотека my_lib.so, полученная с помощью Boost.Python. В коде можно просто написать import my_lib и скрипт будет работать, однако PyCharm подчёркивает этот стэйтмент как ошибочный, мол, не может найти такой модуль. Из-за этого неправильно работает сортировка импортов. Как правильно импортировать такие модули?
Нашёл такое решение https://stackoverflow.com/a/13466708. Делаем одноименный питоновский файл, который вручную грузит библиотеку:
def __bootstrap__():
global __bootstrap__, __loader__, __file__
import sys, pkg_resources, imp
__file__ = pkg_resources.resource_filename(__name__,'my_lib.so')
__loader__ = None; del __bootstrap__, __loader__
imp.load_dynamic(__name__,__file__)
__bootstrap__()
Но он устарел похоже, у меня не работает (эффект как от добавления пустого файла, видимо импортируется библиотека всё равно по приоритету). Хотя подчёркивания и нет.
Ответы (1 шт):
Получилось исправить добавлением в PATH пути к библиотеке как сказано тут https://stackoverflow.com/q/24197970