2016-06-13 13 views
5

Binary sind viele-Linux-Räder jetzt unterstützt:Wie entscheidet pip, welches Linux-Rad zu verwenden ist?

https://github.com/pypa/manylinux

Insbesondere würde Ich mag das viel Linux-Rad für scipy auf Travis installieren, das treue Beta Betriebssystem. Die Räder sind hier aufgeführt:

https://pypi.python.org/pypi/scipy/0.17.1

ich:

Collecting scipy 
    Downloading scipy-0.17.1.tar.gz (12.4MB) 
    100% |████████████████████████████████| 12.4MB 100kB/s 

Statt:

Collecting scipy 
    Downloading scipy-0.17.1-cp27-cp27mu-manylinux1_x86_64.whl (39.5MB) 
    100% |████████████████████████████████| 39.5MB 37kB/s 

Also, um dieses Problem zu beheben, ich möchte wissen, wie pip bestimmt, welches Rad heruntergeladen und installiert werden soll. Und ja, ich habe Pip auf Version 8.1.2 aktualisiert, die viele Linux-Laufräder unterstützt.

Insbesondere bin ich nicht interessiert an alternativen Lösungen, nur die Frage beantworten, wenn Sie können.

Antwort

5

Sie benötigen Pip 8.1 oder höher und eine Linux Distribution, die auf glibc basiert (und nicht auf musl libc wie alpine linux zum Beispiel).

EDIT: die Funktion pip.pep425tags.get_supported() sollte die Liste der unterstützten platform tags in Reihenfolge zurückgeben. Pip bevorzugt Radmarken, die früher in dieser Liste erscheinen, über Tags, die später erscheinen.

Auch kann ich schlage vor, Sie freundlich Python verwenden 3.5 statt 2.7;)

+0

Ja, sobald ich bestätigen kann, dass unser Tech-Stack mit 3.5 funktioniert, werde ich auf 3.5 wechseln. Ich habe Pip 8.1 und Ubuntu 14.04. Außerdem haben Sie die Frage nicht wie gewünscht beantwortet. – esc

+0

auch, auf 3.5 die scipy wheel Installation funktioniert gut ... – esc

+0

Es scheint, dass die 2.7 mu Variante nicht hochgeladen wurde (nur die m Variante ist für 64bit linux verfügbar). Es könnte ein Versehen des scipy Release Managers sein. Python 3 hat dieses Problem nicht, da es eine einzige Möglichkeit gibt, mit Unicode umzugehen. – ogrisel

1

Also, die richtige Antwort ist, dass Pip eine Liste der unterstützten Tags hat und versuchen, diejenigen zu entsprechen. pip.pep425tags.get_supported() listet die Tags für Ihre Plattform auf und verwendet diese Liste auch für die Übereinstimmung mit den Manylinux-Binärrädern.