Ubuntu PIP installiert Pakete global statt innerhalb von VirtualEnv

Ubuntu PIP installiert Pakete global statt innerhalb von VirtualEnv

Ich versuche, eine virtuelle Umgebung zu erstellen und Pakete aus der Datei „requirements.txt“ zu installieren, die ich für das Projekt habe.

Wenn ich die Umgebung erstelle, überprüfe ich, ob Python und Pip tatsächlich aus dieser Umgebung stammen. Und zwar, wenn ich Folgendes ausführe:

source ./virtualenv/bin/activate

which pip

which python

Ich erhalte Ergebnisse, die auf die Binärdateien im Verzeichnis „virtualenv“ verweisen.

Anschließend fahre ich mit der Installation der Pakete fort: pip install -r requirements.txt

Eine Zeit lang machte mir die pkg-resources=0.0.0Zeile in requirements.txt Probleme. Wie sich herausstellte, wurde diese Zeile aufgrund eines Fehlers in Ubuntu in diese Datei eingefügt. Wie Sie sich wahrscheinlich denken können, hatte ich diese Datei auf einem Ubuntu-Rechner erstellt.

Sobald ich die Zeile durchstreiche, wird die Installation fortgesetzt.

Wenn ich jedoch nach der Installation pip list ausführe, enthält die Liste nur

pip (8.1.1) pkg-Ressourcen (0.0.0) Setuptools (20.7.0)

Darüber hinaus sehe ich, wenn ich die virtuelle Umgebung deaktiviere und „pip list“ global ausführe, dass alle Abhängigkeiten global installiert wurden.

Hier stellen sich zwei Fragen. Erstens – und das ist am offensichtlichsten – warum passiert das? Zweitens: Wie kann ich meine globalen Pakete bereinigen und die Schadstoffe deinstallieren, die sich jetzt dort befinden?

Nachtrag:

Ein weiteres bizarres Verhalten besteht im Folgenden. Wenn ich versuche, es sudo pip uninstall -r requirements.txtaus der virtuellen Umgebung heraus auszuführen, in der Hoffnung, die globale Installation rückgängig zu machen, erhalte ich die folgende Fehlermeldung:

Anforderung aldryn-apphooks-config kann nicht deinstalliert werden, nicht installiert

Das heißt, es scheint, dass Pip beim Versuch der Deinstallation versucht, innerhalb der virtuellen Umgebung nach Paketen zu suchen.

Wenn ich andererseits die virtuelle Umgebung deaktiviere, kann ich die Pakete mit demselben Befehl erfolgreich aus der globalen Installation deinstallieren.

Irgendwie gibt es einen Unterschied in der Funktionsweise des Pip-Install-Befehls unter Ubuntu im Vergleich zum Pip-Deinstallationsbefehl. Sie „suchen“ an unterschiedlichen Orten nach Paketen.

verwandte Informationen