Sto costruendo un pacchetto python usando una libreria C con i tipi. Voglio rendere portatile il mio pacchetto (Windows, Mac e Linux).Come evitare di costruire la libreria C con il mio pacchetto python?
Ho trovato una strategia, utilizzando build_ext
con pip
per creare la libreria durante l'installazione del pacchetto. Crea libfoo.dll
o libfoo.dylib
o libfoo.so
a seconda della piattaforma di destinazione.
Il problema con questo è che il mio utente ha bisogno di CMake installato.
Esiste un'altra strategia per evitare la creazione durante l'installazione? Devo raggruppare librerie incorporate nel mio pacchetto?
Voglio mantenere i miei utenti facendo pip install mylib
.
Edit: grazie a @Dawid commento, sto cercando di fare un python wheel
con il comando python setup.py bdist_wheel
senza alcun successo.
Come posso creare la mia ruota di pitone per la piattaforma diversa con la libreria incorporata?
Edit 2: sto usando Python 3.4 e di lavoro su Mac OS X, ma non ho accesso al computer Windows, e il computer Linux
sì, è necessario creare pacchetti di ruote (compilati in formato binario) per piattaforme specifiche, 'pip install wheel 'e quindi creare per le piattaforme richieste – Dawid
@Dawid grazie, ho provato a creare una ruota python, ma penso di essere Manca qualcosa –
Penso che sia necessario includere informazioni su quella lib in 'setup.py' in modo da costruirlo. Qualcosa lungo https://docs.python.org/3.4/extending/building.html in questo modo eseguendo 'python setup.py bdist_wheel' su ogni piattaforma creerà un pacchetto whl per quella piattaforma con una libreria compilata. Quindi gli utenti su linux installeranno il pacchetto per linux, su windows per windows e su mac per mac. Almeno quello che vorrei fare per creare un pacchetto binario per quei sistemi. – Dawid