Ho scritto una libreria la cui funzionalità principale è implementata in C (la velocità è critica), con un sottile strato Python attorno ad esso per gestire la cattiveria ctypes
.Il modo migliore per impacchettare una libreria Python che include una libreria condivisa C?
Sto arrivando per impacchettarlo e mi chiedo come potrei andare meglio su questo. Il codice con cui deve interfacciarsi è una libreria condivisa. Ho un Makefile che costruisce il codice C e crea il file .so
, ma non so come lo compili via distutils. Devo solo chiamare a make
con subprocess
sovrascrivendo il comando install
(in tal caso, è install
il posto per questo, o è build
più appropriato?)
Aggiornamento: voglio sottolineare che questo non è un'estensione Python. Cioè, la libreria C non contiene alcun codice per interagire con il runtime di Python. Python sta facendo chiamate di funzioni estranee a una libreria condivisa C diritta.
Avete qualche soluzione per il vostro problema? Sono bloccato con la stessa domanda e alla disperata ricerca di una risposta;) – MrLeeh
Questo è molto tempo fa ma sembra che l'ho risolto eseguendo il bombardamento su 'make'. Questo è il setup.py di quella libreria: https://gist.github.com/obeattie/3d491ec4c29b1d4b46387b285c91ca89 – obeattie
Ho provato a fare quello che hai in questo senso, ma ... come hai ottenuto il '.so' tu? foderato per essere installato in qualsiasi posizione Python/ld lo cercherà? – wvxvw