Pip installiert nicht die neueste verfügbare Version von pypi (in diesem Fall argparse)

Das Problem

Ich habe in letzter Zeit an einigen Python-Projekten gearbeitet und hatte viele Probleme mitpip Installieren Sie nicht die neuesten Versionen einiger Anforderungen. ich bin onosx und und ich benutztebrauen installierenPython 2.7.6. In dem Projekt, an dem ich arbeite, machen wir einfachpip install -r requirements.txt. Im aktuellen Fall musste ich installierenargparse==1.2.1. Dies ist die aktuellste Versionauf der pypi website

Hier ist meine Ausgabe

Downloading/unpacking argparse==1.2.1 (from -r requirements.txt (line 4))
Could not find a version that satisfies the requirement argparse==1.2.1 (from -r requirements.txt (line 4)) (from versions: 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.0, 0.9.0, 0.9.1, 1.0.1, 1.0, 1.1)
Some externally hosted files were ignored (use --allow-external to allow).
Cleaning up...
No distributions matching the version for argparse==1.2.1 (from -r requirements.txt (line 4))

Ich hatte ähnliche Probleme mit unterschiedlichen Anforderungen wiematplotlib die habe ich wie gesehen manuell installiertHier.

Wie Sie sehen können, hat pip auf meinem Mac nur die folgenden Versionen:0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.0, 0.9.0, 0.9.1, 1.0.1, 1.0, 1.1

Versuche zu beheben

Ich habe versucht, Python mit neu zu installierenbrew reinstall python, habe dann auch versucht, alle meine installierten Python-Pakete mit etwas xargs magic neu zu installieren:pip freeze | xargs -I {} sudo pip install {} --upgrade --force-reinstall.

Beim Versuch, alles neu zu installieren, hatte ich Probleme mit den meisten Paketen:error: invalid command 'egg_info'. Ich fand heraus, dass ich eine alte hattesetuptools also ichpip install --upgrade setuptools und ich könnte jetzt alles neu installieren, aber immer noch das gleiche problem mitargparse. Immer noch das gleiche Problem mit argparse.

Ich habe einen Freund mit einem frisch installierten osx dazu gebetenpip install argparse und er bekam1.1 Also habe ich aprecise32 Landstreicher für eine saubere Ubuntu-Installation mitpython-dev + libevent-dev und hatte überhaupt keine Probleme bei der Installationargparse==1.2.1.

Temp fix

Um weiter an dem Projekt zu arbeiten, habe ich argparse 1.1 auf osx installiert und es scheint gut für das zu funktionieren, woran ich arbeite.

Fragen

Ich bin (noch) nicht sehr gut mit Pypi, aber gibt es irgendeinen Grund, warum ich nicht die neuesten Versionen bekomme, die auf Pypi gezeigt werden? Klingt so, als ob nicht alle pypi-Bibliotheken für osx verfügbar sind. Gibt es eine Möglichkeit, die Verfügbarkeit von Versionen für verschiedene Betriebssysteme zu ermitteln?

Bearbeiten: Lösung im Inneren

argparse1.1 scheint das gleiche zu sein wie1.2.1 wie auf diesem Ausgang gezeigt

vagrant@precise32:~$ python
Python 2.7.3 (default, Sep 26 2013, 20:08:41)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import argparse
>>> argparse.__version__
'1.1'
>>> quit()
vagrant@precise32:~$ pip freeze | grep argparse
argparse==1.2.1

Ich habe versucht zu verwenden--allow-external auf osx, merkte aber nicht, dass es wieder den Namen des Pakets brauchte.

sudo pip install argparse --allow-external argparse --upgrade

und voilà :)

argparse an externally hosted file and may be unreliable
Downloading/unpacking argparse from http://argparse.googlecode.com/files/argparse-1.2.1.tar.gz#md5=2fbef8cb61e506c706957ab6e135840c
  Downloading argparse-1.2.1.tar.gz (69kB): 69kB downloaded

Peter wies darauf hin, dass die neueste Version von pipdefault to disallowing externally hosted files.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage