2013-03-28 16 views
27

Ich versuche, Django 1.4.3 zu installieren, aber wenn ich installieren execute pip, pip hält die Installation von Django Version 1.5 statt 1.4.3pip installieren: Wie eine bestimmte Paketversion zwingen

sudo pip install -I Django==1.4.3

es gibt:

Downloading/unpacking Django==1.4.3 
    Running setup.py egg_info for package Django 

    warning: no previously-included files matching '__pycache__' found under directory '*' 
    warning: no previously-included files matching '*.py[co]' found under directory '*' 
=== >>>> Requested Django==1.4.3, but installing version 1.5 <<<< ==== 
Installing collected packages: Django 
    Found existing installation: Django 1.5 
    Uninstalling Django: 
     Successfully uninstalled Django 
    Running setup.py install for Django 

    warning: no previously-included files matching '__pycache__' found under directory '*' 
    warning: no previously-included files matching '*.py[co]' found under directory '*' 
    changing mode of /usr/local/bin/django-admin.py to 755 
Successfully installed Django 
Cleaning up... 

aber wenn ich pip freeze ausführen, hält es

Django == 1.5

zeigt

Was mache ich falsch?

Danke

+0

Dumme Frage, aber haben Sie versucht, alle Versionen von Django zu deinstallieren, und dann Ihren Befehl ausführen? – NT3RP

+0

Ja, ich habe und funktioniert nicht. Ich habe auch die Alternative, das Paket herunterzuladen und manuell zu installieren, aber ich möchte wissen, ob es eine Option in pip gibt, um dieses Verhalten zu vermeiden und die 1.4.3-Version – kothvandir

+0

zu erzwingen haben Sie nur 'pip install Django == 1.4.3 versucht ' – catherine

Antwort

17

Dies könnte/sollte/kann durch das Löschen des Build-Verzeichnis für Django in pip geholfen werden. Es ist ein Fehler für diese, seit Version 1.1 see here for details

können Sie für diese Ordner Überprüfung starten hier, wenn Sie unter OS X oder Unix sind wie Systeme:

~/.pip 
/tmp/pip-build-root (or pip-build-$USER, if you aren't running pip as root). 

Dies ist, wenn Sie nicht haben Bei der Installation der ersten Version von Django wurde ein neuer Build-Ordner angegeben.

Viel Glück!

+0

Es funktioniert nicht, weder mit -v Flag noch Einstellung" Django <= 1.5 "oder mit 'Django == 1.4.3'. Es gibt keinen Fehler aus, die 1.5-Version wird korrekt installiert, besagt aber weiterhin Requested Django == 1.4.3, installiert aber Version 1.5. – kothvandir

+0

Siehe aktualisierte Antwort –

+0

Ich bin ziemlich sicher, dass das Flag -V nur zur Ausgabe der aktuell installierten Pip-Version dient und nichts mit 'pip install' zu tun hat. – aiham

8

Als limelight says sollten Sie Ihren Cache leeren und Verzeichnisse erstellen, oder übergeben Sie einen temporären sauberen Ort mit der --download-cache und Flag.

$ pip help install 
[...] 
--download-cache <dir>  Cache downloaded packages in <dir>. 
-b, --build <dir>   Directory to unpack packages into and build in. The default in a virtualenv is "<venv path>/build". The default for global installs is 
          "<OS temp dir>/pip-build-<username>". 

Ich möchte alle Leser warnen, nicht sudo pip install verwenden Django zu installieren. Es installiert Django systemweit. Und das Ändern der systemweiten Version könnte Systempakete zerstören, die davon abhängen. Zum Beispiel sind Ubuntu MAAS und Cobbler abhängig vom System-Django-Paket. Dies sind normalerweise Dienste, die Sie nicht unterbrechen möchten.

Wenn Sie eine andere Version als das Systempaket benötigen, verwenden Sie virtualenv, um Ihre Abhängigkeiten vom System zu isolieren.

OP scheint auf OSX zu sein, und ich kenne keinen Server-weiten Mac Django, aber das kann sich ändern. Erwägen Sie die Installation von Python-Paketen mit sudo um den systeminstallieren Python mit Python 3 zu ändern; es könnte jetzt funktionieren, aber haben Sie etwas Paracetamol auf Lager, da Sie für einige Kopfschmerzen sind.

+0

Bei Windows mit Cygwin benötigen Sie beide oben genannten Flags, um Pip zur Ignorierung von Caches zu erhalten. Es ist ein komisches Design - man würde meinen, dass das Hinzufügen von -U und das Erzwingen einer Version bedeuten würden, dass ich diese Version wirklich wollte, nicht zufällig, die zufällig in meinem Cache ist. – fastmultiplication

4

Überprüfen Sie Ihren lokalen Cache und entfernen Sie es kann Hilfe sein. Ich habe Pymongo installiert == 2.5.2. Um Pymongo == 2.4.1 zu installieren, entferne ich den Cache in /tmp/pip-build-root/pymongo. Dann installiere ich Pymongo 2.4.1 erfolgreich.