Lassen Sie pip die Abhängigkeiten der in einer Anforderungsdatei aufgelisteten Pakete installieren

Bei der Entwicklung einer Django-Web-App habe ich eine Liste von Paketen, die ich in einem virtuellen Env installieren muss. Sagen:

<code>Django==1.3.1
--extra-index-url=http://dist.pinaxproject.com/dev/
Pinax==0.9b1.dev10
git+git://github.com/pinax/pinax-theme-bootstrap.git@cff4f5bbe9f87f0c67ee9ada9aa8ae82978f9890
# and other packages
</code>

Zu Beginn habe ich sie manuell nacheinander während der Entwicklung installiert. Dies installierte die erforderlichen Abhängigkeiten und ich nutzte sie schließlichpip freeze bevor Sie die App bereitstellen.

Das Problem ist, dass beim Upgrade einiger Pakete einige Abhängigkeiten nicht mehr verwendet oder benötigt werden, aber weiterhin von aufgelistet werdenpip freeze.

Nun möchte ich eine neue virtuelle Umgebung auf folgende Weise einrichten:

Legen Sie die benötigten Pakete (ohne deren Abhängigkeiten) in eine Anforderungsdatei,
mögenmanual-requirements.txtInstallieren Sie sie mit ihren Abhängigkeiten
pip install -r manual-requirement.txt (← Problem, dies installiert die Abhängigkeiten nicht)friere das volle virtualenv ein
pip freeze -r manual-requirements.txt > full-requirements.txt
und bereitstellen.

Gibt es eine Möglichkeit, dies zu tun, ohne die Pakete manuell in einer neuen virtuellen Umgebung neu zu installieren, um ihre Abhängigkeiten zu ermitteln? Dies wäre fehleranfällig und ich möchte den Prozess des Bereinigens des virtuellen Env von nicht mehr benötigten alten Abhängigkeiten automatisieren.

bearbeiten: eigentlich piptut Abhängigkeiten installieren, die nicht explizit in der Anforderungsdatei aufgeführt sind, auch wenndie Dokumentation sagt uns, dass solche Dateien flach sind. Ich habe mich geirrt, welche Abhängigkeiten ich erwartet hatte, installiert zu werden. Ich werde diese Frage an alle richten, die Zweifel daran haben, dass pip nicht alle Abhängigkeiten installiert.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage