2016-09-19 3 views
0

Ich entwickle eine Python/Django-Anwendung, die von einer virtuellen Umgebung (erstellt von virtualenv) ausgeführt wird.Geben Sie 'pip' Version in Anforderungen.txt

Wenn die virtuelle Umgebung geschaffen wird, die globale Version pip in die neu geschaffene Umgebung standardmäßig kopiert wird, was ziemlich veraltet sein könnten (zB Version 1.5.4 von python-pip Paket auf Ubuntu 14.04).

manuellen pip Upgrades zu vermeiden, es klingt wie eine gute Idee, die pip Version in requirements.txt Datei an Pin, zum Beispiel durch die folgende Zeile hinzufügen:

pip==8.1.2

die pip Version angeben es auch ermöglichen, Aktualisieren Sie pip in allen verwalteten Anwendungsumgebungen (lokal, Entwicklung, Produktion), indem Sie die Zeile in der Anforderungsdatei ändern.

Hört sich das nach einer guten Übung an? Kann bei diesem Ansatz irgendetwas schief gehen?

Antwort

0

Was Sie erleben, wird durch eine alte Version von python-virtualenv verursacht mit Ubuntu 14.04 verursacht. Sie sollten die Ubuntu-Paket und installieren Sie über pip entfernen:

sudo pip install virtualenv 

Dann stellen Sie sicher, dass die neueste pip auch installiert haben.

sudo pip install -U pip 

Und Sie sollten diese Version in neuen virtuellen Umgebungen installiert bekommen.

+0

Wenn '' pip' über python-pip' installiert wurde, 'sudo pip -U pip' installieren wird nicht funktionieren. Es wird Ihnen sagen: 'Nicht deinstallieren pip at /usr/lib/python2.7/dist-packages, im Besitz von OS' – tonyo

+0

Dann deinstallieren Sie es über' apt-get', erhalten https: //bootstrap.pypa. io/get-pip.py und 'sudo python get-pip.py' oder' sudo python3 get-pip.py'. –

2

Bitte beachten Sie, dass pip Version in requirements.txt zusammen mit anderen Anforderungen installiert wird. Daher werden alle Anforderungen von der alten Version pip installiert und die in requirements.txt angegebene Version wird danach verfügbar sein.

ich immer:

virtualenv /path/to/my/desired/venv/ 
source /path/to/my/desired/venv/bin/activate 
pip install -U pip 
pip install -r requirements.txt 
+0

Guter Punkt. Sieht so aus, als ob es sinnvoll ist, beides zu tun, dann: Installieren Sie die moderne Pip-Version direkt nach dem Erstellen der virtuellen Umgebung und spezifizieren Sie sie in requirements.txt für Dokumentations-/spätere Upgrades. – tonyo

+0

Ich würde es nicht in requirements.txt angeben - es ist eine falsche Anforderung an erster Stelle. Ist es wirklich so, dass Ihre Software nicht korrekt mit älteren Pips installiert wird? Das glaube ich wirklich nicht. – ElmoVanKielmo

Verwandte Themen