Я пытаюсь взять некоторые функции из большой общей библиотеки С++ (libbig.so) и выставить их на Python через Cython. Для этого у меня есть небольшой файл на С++ (small.cpp), который предоставляет тонкую оболочку вокруг функциональности из разделяемой библиотеки, которая мне нужна, таким образом, чтобы она легко вызывалась через Cython (pysmall.pyx).
libbig.so → small.cpp, small.h → libsmall.so → pysmall.pyx → pysmall.cpp → pysmall.so
Я могу создать и запустить этот модуль расширения на своем собственном компьютере: я просто компилирую small.cpp в libsmall.so, а затем говорю "libraries = ['small']" в объекте Extension в setup.py для создания модуль расширения pysmall.so.
Теперь я пытаюсь распространять этот модуль расширения, и мне сложно отслеживать ресурсы, которые описывают оптимальные методы setup.py для распространения модуля Cython, а также исходные и разделяемые библиотеки C. Я прочитал "Установка модулей Python", "Распространение модулей Python" и "Распространение Cython модулей". Я понимаю, как распространять модуль расширения самостоятельно. Я менее уверен в наилучшем способе распространения зависимостей модуля расширения.
Документация Cython указывает, что вы должны включить сгенерированные файлы .cpp, а также файлы .pyx, если Cython отсутствует, но он не предоставляет код, чтобы продемонстрировать, как лучше всего обрабатывать каждую ситуацию. В нем также не упоминается, как распределять общие библиотеки, от которых зависит модуль Cython.
Я копаю скрипты setup.py из pandas, lxml, pyzmq, h5py и т.д., и там довольно много посторонней работы. Если у кого-то есть указатели или пример кода, которые могли бы ускорить этот процесс, я бы, конечно же, его оценил!