Я пытаюсь создать пакет Python, который взаимодействует с C ++ -кодом. Я создал обертку Pybind11, чтобы сделать Interop. Я создал файл setup.py, следуя инструкциям здесь: < /p>
Код: Выделить всё
from pybind11.setup_helpers import Pybind11Extension
ext_modules = [
Pybind11Extension(
"python_example",
sorted(glob("src/*.cpp")), # Sort source files for reproducibility
extra_link_args=[f"-Wl,-rpath,$ORIGIN"]
),
]
setup(..., ext_modules=ext_modules)
Я установил extra_link_args = [f "-wl, -rpath, $ Origin"] , как я понимаю, он внедрит начало в пути поиска нативных библиотек. (Я также попробовал без него без повезло). Мой модуль C ++ зависит от общей библиотеки, которую я поместил рядом с __init __. py . Но когда я пытаюсь импортировать свой модуль C ++, я получаю: < /p>
Код: Выделить всё
ImportError: libxxx: cannot open shared object file: No such file or directory
Структура моего проекта после установки с помощью pip install. выглядит следующим образом:
Код: Выделить всё
$ ls venv/lib/python3.10/site-packages/my_package
__init__.py __pycache__ libxxx.so
Как исправить ошибку?
Подробнее здесь:
https://stackoverflow.com/questions/793 ... -directory