Pip: ~ / .pip / pip.conf und virtualenv Konflikt

Erstellt am 2. Okt. 2014  ·  5Kommentare  ·  Quelle: pypa/pip

Ich konnte dieses Problem nirgendwo dokumentiert finden, aber wenn Sie install-option in ~/.pip/pip.conf angeben, wird es nicht um virtualenv überschrieben. Ich gebe --prefix=/path/to/somwhere in install-option aufgrund von Benutzereinschränkungen auf meinem Arbeits-PC an. Wenn diese Option festgelegt ist, werden alle Installationen in einem Venv (mit aktiviertem $PIP_RESPECT_VIRTUALENV ) weiterhin im angegebenen Pfad installiert um install-option . Dies war für mich kein erwartetes Verhalten, aber ich bin mir nicht sicher, ob das Ignorieren von pip.conf die richtige Vorgehensweise ist. Vielleicht ist es am besten, ein solches Verhalten zu dokumentieren. Eine andere seltsame Sache ist, dass Sie dann nicht deinstallieren können, während Sie sich in der virtuellen Umgebung befinden, da das Paket nicht in der venv installiert ist und pip es nicht finden kann.

Dies ist mir bei der Verwendung von pip 1.4.1 und 1.5.6 sowie virtualenv 1.11.6 passiert.

virtualenv needs repro bug

Hilfreichster Kommentar

Meine aktuelle Lösung ist , zu setzen $PIP_CONFIG_FILE auf /dev/null über virtualenvwrapper ‚s postactivate Haken und Lösen es in postdeactivate .

Alle 5 Kommentare

Meine aktuelle Lösung ist , zu setzen $PIP_CONFIG_FILE auf /dev/null über virtualenvwrapper ‚s postactivate Haken und Lösen es in postdeactivate .

Dieses Problem ist noch vorhanden. In meinem Fall möchte ich --user -Installationen verwenden, wenn Sie sich nicht in einem Venv befinden (indem Sie dies auf ~/.config/pip/pip.conf , aber "normale" (In-Venv) -Installationen, wenn Sie sich in einem Venv befinden (do --user Installationen machen sogar in einem Venv Sinn?).

Zwei mögliche Lösungen (von denen nur die erste wirklich von pip implementiert werden kann, aber ich kann die Diskussion auch hier beginnen) sind

  • Geben Sie einen Speicherort für die Konfigurationsdatei an, der nur außerhalb von venvs verwendet wird ( ~/.config/pip/pip-novenv.conf oder was auch immer), oder
  • mache --user einem No-Op in einem Venv (wieder bin ich mir nicht sicher, ob --user + Venv Sinn macht: Es gibt nur einen ~/.local/lib/pythonX.Y also ist dort jede Isolation gebrochen).

Problem in Python 3.5.3 noch vorhanden.

Es ist ziemlich ironisch und frustrierend, dass man, wenn man versucht, vorsichtig mit der Umgebung umzugehen, bis hin zur Verwendung virtueller Umgebungen und Benutzerinstallationen in pip.conf, mit einem nicht funktionierenden System endet.

Ich habe versucht zu vermeiden, dass Teammitglieder sudo pip . Es wird immer schwieriger.

Ist das nicht ein Fehler in virtualenv - dass es bei Verwendung einer Option nicht PIP_CONFIG_FILE=/dev/null ?
Oh, wurde heute davon gebissen.

Kann jemand bitte klare Anweisungen geben, wie dies reproduziert werden kann?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen