Ich benutze export PIP_REQUIRE_VIRTUALENV=true;
in meinem .bashrc
, um sicherzustellen, dass ich nicht versehentlich mein globales env verschmutze, während ich Pakete für die verschiedenen Projekte installiere, an denen ich arbeite.
Ich erinnerte mich vage daran, dass dies das gleiche war wie das Hinzufügen von --require-virtualenv
zur Befehlszeile beim Aufruf von pip
.
Allerdings konnte ich keine Dokumentation für dieses überall mit Ausnahme von im Quelltext von pip , wo die Hilfe für das Feature explizit unterdrückt wird (mit SUPRESS_HELP
)! Es gibt 11 solche Optionen, für die die Hilfe auch explizit deaktiviert wurde (z. B. --no-input
).
Ich schaue durch den Verlauf der Datei, habe aber keine Erwähnung von gefunden, warum das Feature in den Commit-Nachrichten verborgen war.
Ist das ein experimentelles Merkmal, auf das man sich nicht verlassen sollte? Sollte ich diese Funktionen nicht nutzen (oder andere dazu ermutigen) oder gibt es eine andere Möglichkeit, diese Funktionen zu nutzen? Könnte jemand bitte etwas Licht auf dieses Rätsel werfen?
Update: Ich habe diese Frage als Problem auf der Seite pip
's Github
Disclaimer: Ich bin kein beitragender Autor auf pip und das sind Spekulationen und keine Einsichten von den Autoren oder Betreuern von pip.
Einer oder mehrere der folgenden Punkte haben den Autor möglicherweise dazu veranlasst, die Optionen zu verbergen:
Einige Optionen sind wirklich noops und bestehen aus Gründen der Vollständigkeit und Kompatibilität, werden aber normalerweise nicht von jemandem verwendet, der Hilfe liest. Zum Beispiel --use-wheel
, das standardmäßig aktiviert ist.
Einige Optionen sind vorübergehend oder veraltet und sollten nicht verwendet werden, da sie möglicherweise in einer zukünftigen Version entfernt werden. Zum Beispiel --use-mirrors
, das mit dem Kommentar TODO gekennzeichnet ist: Entfernen nach 6.0 .
Einige Optionen können experimentell sein oder funktionieren möglicherweise nicht in allen Umgebungen. Dies könnte ein Problem für Endbenutzer sein, die erwarten, dass die Software plattformübergreifend ist und die Autoren nicht die Mühe machen, die Umgebung zu testen und bedingte Anweisungen zu erstellen - vielleicht eine unnötige Komplexität für selten verwendete spezialisierte Optionen. Vielleicht ist --default-vcs
ein Beispiel dafür.
Eine weitere Möglichkeit besteht darin, dass das Verhalten einer selten verwendeten Option nicht standardisiert oder schwer zu beschreiben ist, da es von externen Variablen oder der Umgebung abhängt. In diesem Fall kann es leichter sein, Hilfe zu unterdrücken als eine verwirrend.
Als ich Betreuer von grep
war, hatten wir anfangs viele undokumentierte Optionen. Dies waren Optionen, deren Verhalten nicht dem Standard entsprach (z. B. nicht mit POSIX übereinstimmte), aber wo sie aus historischen Gründen und deren Entfernung kritische Systemskripte auf der ganzen Welt, die sie möglicherweise verwendet haben, verletzt haben könnten. Ich würde nicht wissen, ob solche Optionen in Pip existieren, aber wollte dies aus Gründen der Vollständigkeit als Grund dafür erwähnen, warum einige Optionen versteckt sind.
Tags und Links python pip virtualenv