Pip: ~ / .pip / pip.conf et conflit virtualenv

Créé le 2 oct. 2014  ·  5Commentaires  ·  Source: pypa/pip

Je n'ai trouvé ce problème documenté nulle part, mais si vous spécifiez install-option dans ~/.pip/pip.conf , il n'est pas remplacé par virtualenv . Je spécifie --prefix=/path/to/somwhere dans install-option raison de restrictions utilisateur sur mon ordinateur de travail, et avec ce paramétrage, toute installation dans un venv (avec $PIP_RESPECT_VIRTUALENV activé) est toujours installée dans le chemin spécifié par install-option . Ce n'était pas un comportement attendu pour moi, mais je ne suis pas sûr que le fait d'ignorer pip.conf soit la bonne marche à suivre. Il est peut-être préférable de documenter un tel comportement. Une autre chose étrange est que vous ne pouvez pas désinstaller alors que dans le virtualenv, car le paquet n'est pas installé dans le venv, et pip ne peut pas le trouver.

Cela m'est arrivé lors de l'utilisation de pip 1.4.1 et 1.5.6 et virtualenv 1.11.6.

virtualenv needs repro bug

Commentaire le plus utile

Mon correctif actuel est de définir $PIP_CONFIG_FILE sur /dev/null via virtualenvwrapper le postactivate hook et de le désactiver dans postdeactivate .

Tous les 5 commentaires

Mon correctif actuel est de définir $PIP_CONFIG_FILE sur /dev/null via virtualenvwrapper le postactivate hook et de le désactiver dans postdeactivate .

Ce problème est toujours présent. Dans mon cas, j'aimerais utiliser --user installe quand il n'est pas dans un venv (en définissant ceci dans ~/.config/pip/pip.conf , mais "normal" (in-venv) installe quand dans un venv (do --user installe même un sens dans un venv?).

Deux solutions possibles (dont seule la première peut vraiment être implémentée par pip, mais je peux aussi bien commencer la discussion ici) sont

  • fournir un emplacement de fichier de configuration qui n'est utilisé qu'en dehors de venvs ( ~/.config/pip/pip-novenv.conf ou autre), ou
  • make --user un no-op dans un venv (encore une fois, je ne suis pas sûr que --user + venv ait un sens: il n'y a qu'un seul ~/.local/lib/pythonX.Y donc tout isolement est rompu).

Problème toujours présent dans Python 3.5.3.

C'est assez ironique et frustrant que si l'on essaie d'être prudent avec l'environnement, au point d'utiliser des environnements virtuels et des installations utilisateur dans pip.conf, on se termine par un système qui ne fonctionne pas.

J'essayais d'éviter que les membres de l'équipe utilisent sudo pip . Cela devient de plus en plus difficile.

N'est-ce pas un bug dans virtualenv - qu'il ne définit pas PIP_CONFIG_FILE=/dev/null lors de l'utilisation d'une option?
Oh, j'ai été mordu par ça aujourd'hui.

Quelqu'un peut-il s'il vous plaît fournir des instructions claires sur la façon de reproduire cela?

Cette page vous a été utile?
0 / 5 - 0 notes