2016-10-03 5 views
0

Die requirements.txt Datei für ein Paket in der Entwicklung enthält so etwas wie:Pip ignoriert veränderte Anforderung

git://git.gitsomewhere.com/[email protected]#egg=MyProject 

Und es installiert von

pip install -r requirements.txt 

, wenn es keine vorherige Version war.

Wenn sich der Commit-Hash ändert, wird Pip die Abhängigkeit jedoch nicht aktualisieren (diese Anforderung ist bereits erfüllt).

Gibt es eine Möglichkeit, Pip-Fetch zuverlässig die richtige Version zu geben, die durch den Commit-Hash spezifiziert wird (und vielleicht durch die Version in der setup.py des abgerufenen Pakets bestätigt wird)?

Pip 8.1.2, für die Aufzeichnung.

Antwort

1

Es ist möglich, editierbare Projekt hinzuzufügen, statt in virtualenv der Installation durch die Abhängigkeit Linie mit -e vorangestellt wird:

-e git://git.gitsomewhere.com/[email protected]#egg=MyProject 

Eine andere Möglichkeit, die unter bestimmten Umständen vorteilhaft sein kann, ist (direkt hinzuzufügen, oder in etwas mehr bequemer Weg):

-e MyProject 

und als git submodule handhaben. (Siehe auch Including Git submodules on pythonpath when using virtualenv)

Eine weitere Möglichkeit:

./MyProject 

Vorsicht, bisherige Lösungen können durch Altanlagen beeinflusst werden.

NB, dass pip install -r requirements.txt Installation aktualisieren nur, wenn Version in setup.py geändert.

Bevor Sie mit der einen oder anderen Lösung fortfahren, überprüfen Sie, wie (und ob) es von zuvor installierten Paketen wiederhergestellt wird.

Verwandte Themen