Импорт общего объекта в Python с помощью pybind11 ⇐ C++
-
Гость
Импорт общего объекта в Python с помощью pybind11
Я пытаюсь вызвать файл .so из скрипта Python. Я использовал pybind11 a для создания .so с функцией «привет», которую я хочу вызвать из своего кода Python. Очевидно, чтобы его можно было импортировать, оно должно иметь определенное имя, например: «libtest.cpython-311-x86_64-linux-gnu.so». Благодаря этому я могу импортировать его как «libtest», а затем вызвать функцию hello (которая находится внутри общего объекта). Но есть две проблемы:
[*]
Моя среда IDE (CLion), похоже, вообще не понимает, что импортируется, и выделяет import libtest как ошибку, хотя я могу выполнить это нормально. (Вероятно, это вопрос не для SO, но если кто-то знает, пожалуйста, дайте мне знать)
[*]
Я могу импортировать модуль libtest только в том случае, если .so находится в той же папке, что и мой скрипт Python. Есть ли способ импортировать его независимо от пути, например, могу ли я импортировать его из /usr/bin? Я попытался добавить его в $PATH, но, похоже, это ничего не дало. Так как же можно «объединить» .so и скрипт, чтобы их можно было легко загрузить?
Я пытаюсь вызвать файл .so из скрипта Python. Я использовал pybind11 a для создания .so с функцией «привет», которую я хочу вызвать из своего кода Python. Очевидно, чтобы его можно было импортировать, оно должно иметь определенное имя, например: «libtest.cpython-311-x86_64-linux-gnu.so». Благодаря этому я могу импортировать его как «libtest», а затем вызвать функцию hello (которая находится внутри общего объекта). Но есть две проблемы:
[*]
Моя среда IDE (CLion), похоже, вообще не понимает, что импортируется, и выделяет import libtest как ошибку, хотя я могу выполнить это нормально. (Вероятно, это вопрос не для SO, но если кто-то знает, пожалуйста, дайте мне знать)
[*]
Я могу импортировать модуль libtest только в том случае, если .so находится в той же папке, что и мой скрипт Python. Есть ли способ импортировать его независимо от пути, например, могу ли я импортировать его из /usr/bin? Я попытался добавить его в $PATH, но, похоже, это ничего не дало. Так как же можно «объединить» .so и скрипт, чтобы их можно было легко загрузить?
Мобильная версия