2016-07-12 16 views
10

So che le ruote sono la versione binaria di un modulo caricato su PyPI.Python Wheels su Linux (come? E perché?)

con pip install

  • Su Windows: ricevo ruote scaricate e installate.
  • Su Ubuntu: dovrei ottenere la distribuzione di origine del pacchetto MA in some cases Ottengo le ruote.
  • su Fedora: Tricky devo installare con DNF

Ho provato ad aggiungere ruote-my package pure. Ma sono in grado di caricare solo ruote per Windows.

  • Perché alcuni pacchetti forniscono ruote per la piattaforma Linux?
  • Va bene? Fornire i binari anziché la fonte?
  • Perché non riesco a fornire le ruote?

Nota: so un po 'di pacchetti rpm di Fedora. Sono interessato ora a ruote su Ubuntu.

risposta

8

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

+0

Quando provo a caricare le ruote su Linux, ricevo un errore, lo incollo qui non appena possibile. (oggi) –

+2

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. " –