2013-06-20 12 views
8

Meine Frage ist sehr ähnlich zu this Frage. Aber es unterscheidet sich in einer Weise, dass, wenn ich ein Paket installiere ich nur das Upgrade für eine bestimmte Abhängigkeit nicht für alle Abhängigkeiten deaktivieren möchte. Ich weiß, dass es eine Flagge --no-deps gibt, aber es wird alle Abhängigkeit ausschließen, ich will nur einen ausschließen. Hierpip: Upgrade-Paket ohne Upgrade bestimmter Abhängigkeit

ist ein Szenario:

Hier sind django-rosetta Abhängigkeiten in neueste Build:

install_requires=[ 
    'six >=1.2.0', 
    'Django >= 1.3' 
] 

i Jetzt möchte Rosetta pip install -U django-rosetta aktualisieren . Aber es hat versucht, Django 1.5 zu downloaden und zu installieren, weil in Rosetta Abhängigkeit Django >= 1.3 erforderlich ist (und ich will es nicht tun, da Django 1.4 bereits installiert ist) Ich will nur, dass es six Paket aktualisieren, wenn es welche gibt.

--no-deps Flag funktioniert nicht, da es six Paket auch ausschließt. Ich benutze auch keine virtuelle Umgebung. Irgendwelche Vorschläge bitte?

+0

Im Beispiel Pip versucht Django zu installieren ' 1.5', ist das, weil 'Django 1.4' nicht mit Pip installiert wurde? –

Antwort

18

Dies funktioniert und lässt Sie genauer sein:

pip install -U django-rosetta Django==1.4 
+1

Tatsächlich tut es das. – slumtrimpet

7

erstellen Anforderung Datei requirement.txt enthält:

Django==1.4 

dann

pip install -U django-rosetta -r requirement.txt 
+0

Aber wenn ich diesen Ansatz befolge, würde es den Rest der Pakete (außer Django) aktualisieren, die sich in der requirements.txt Datei befinden. –

+0

Nun, vielleicht habe ich Ihre Frage nicht verstanden, aber Sie haben nach einer Möglichkeit gefragt, die Aktualisierung eines bestimmten Pakets (Django) zu verhindern, während Sie alles andere aufrüsten ... was ich sage ist, dass die Anforderungsdatei verwendet werden kann, um diese zu blockieren bestimmte Pakete, die aktualisiert werden sollen und pip andere aktualisieren lassen. – Guillaume

+0

Nur getestet und es wird mit 'requirements.txt' Datei funktionieren, wenn Sie die Versionsnummer auch für jedes Paket behalten. –

Verwandte Themen