この問題はどこにも文書化されていませんが、 ~/.pip/pip.conf
でinstall-option
を指定した場合、 virtualenv
によって上書きされません。 仕事用PCのユーザー制限のため、 install-option
--prefix=/path/to/somwhere
を指定します。これを設定すると、venv( $PIP_RESPECT_VIRTUALENV
有効になっている)へのインストールはすべて、指定されたパスにインストールされます。 install-option
。 これは私にとって予想された動作ではありませんpip.conf
が、
これは、pip1.4.1と1.5.6およびvirtualenv1.11.6を使用しているときに発生しました。
私の現在の修正は、 virtualenvwrapper
のpostactivate
フックを介して$PIP_CONFIG_FILE
を/dev/null
設定し、 postdeactivate
で設定を解除することです。
この問題はまだ存在しています。 私の場合、venvにないときに--user
インストールを使用したいと思います(これを~/.config/pip/pip.conf
に設定しますが、venvにあるときに「通常の」(in-venv)インストールを使用します( --user
インストールは、venvでも意味がありますか?)。
2つの可能な解決策(そのうち最初の1つだけが実際にpipで実装できますが、ここで説明を開始することもできます)は次のとおりです。
~/.config/pip/pip-novenv.conf
など)でのみ使用される構成ファイルの場所を提供する、または--user
venvでno-opにします(ここでも、 --user
+ venvが意味をなすかどうかはわかりません。 ~/.local/lib/pythonX.Y
1つしかないため、すべての分離が解除されます)。Python3.5.3にはまだ問題があります。
仮想環境を使用してpip.confにユーザーをインストールするという点で、環境に注意を払おうとすると、システムが機能しなくなってしまうのは、かなり皮肉でイライラします。
チームメンバーにsudo pip
使用させないようにしようとしていました。 それはますます難しくなっています。
これはvirtualenv
バグではありませんか?オプションを使用するとPIP_CONFIG_FILE=/dev/null
設定されませんか?
ああ、今日これに噛まれました。
誰かがこれを再現する方法について明確な指示を提供できますか?
最も参考になるコメント
私の現在の修正は、
virtualenvwrapper
のpostactivate
フックを介して$PIP_CONFIG_FILE
を/dev/null
設定し、postdeactivate
で設定を解除することです。