Perché alcuni pacchetti forniscono ruote per la piattaforma Linux?
Perché non dovrebbero, purché siano disponibili anche le distribuzioni di origine? :)
La tua domanda non è chiara. Se intendevi
Perché alcuni pacchetti forniscono ruote specifiche per piattaforma Linux invece di unità indipendenti da Platfom?
quindi dare un'occhiata a this question e le sue risposte. In caso contrario, ti preghiamo di chiarire la tua domanda.
Su Ubuntu: dovrei ottenere la distribuzione sorgente del pacchetto, ma in some cases ottengo ruote.
Provare a utilizzare:
pip install --no-binary :all: somepackage
Questo dovrebbe rendere pip
scaricare una distribuzione sorgente se esiste sul PyPI. Non so perché non ci sono pacchetti sorgente per PyQt5 su PyPI, probabilmente perché non sono installabili con pip
e hanno bisogno di un'intera toolchaing per la compilazione.
È questo va bene? Fornire i binari anziché la fonte?
Va bene se si forniscono sia i binari che la fonte. Ti suggerisco di farlo.
Perché non posso fornire ruote?
Prova python setup.py bdist_wheel
. È necessario installare il pacchetto wheel
(su PyPI) per farlo funzionare. Se il pacchetto supporta sia Python 2 e 3 e non contiene estensioni C, aggiungere l'opzione --universal
per creare un "universal wheel".
Sostituire bdist_wheel
con sdist
per creare una distribuzione di origine. Creerà un archivio nella directory dist
.
sdist crea l'archivio del formato predefinito per la piattaforma corrente. Il formato predefinito è un file tar gzip (.tar.gz
) su Unix e file ZIP su Windows.
È possibile specificare come molti formati come ti piace usare l'opzione --formats
, ad esempio:
python setup.py sdist --formats=gztar,zip
per creare un tar.gz ed un file zip
(Citazione di https://docs.python.org/3/distutils/sourcedist.html)
Ulteriori informazioni su imballaggio e ruote sono disponibili qui: https://packaging.python.org/distributing/#packaging-your-project
Quando provo a caricare le ruote su Linux, ricevo un errore, lo incollo qui non appena possibile. (oggi) –
https://packaging.python.org/current/#id8 "Attualmente PyPI consente solo il caricamento di ruote Windows e Mac OS X, e dovrebbero essere compatibili con i programmi di installazione binari forniti per il download da python.org. devono essere fatti allo schema di codifica della compatibilità delle ruote prima che le ruote di linux siano consentite. " –