我在任何地方都找不到此问题的文档,但是如果您在~/.pip/pip.conf
指定install-option
~/.pip/pip.conf
,则不会被virtualenv
覆盖。 由于用户对我的工作电脑的限制,我在install-option
指定--prefix=/path/to/somwhere
,并且在设置了该功能后,venv中的任何安装(启用$PIP_RESPECT_VIRTUALENV
)仍安装在指定路径由install-option
。 这对我来说不是预期的行为,但是我不确定忽略pip.conf
是否也是正确的做法。 记录这种行为也许是最好的。 另一个奇怪的事情是您无法在virtualenv中卸载,因为该软件包未安装在venv中,而pip找不到它。
这在使用pip 1.4.1和1.5.6和virtualenv 1.11.6时发生了。
我当前的解决方法是通过virtualenvwrapper
的postactivate
钩子将$PIP_CONFIG_FILE
为/dev/null
并将其取消设置在postdeactivate
。
此问题仍然存在。 就我而言,我想在不使用venv时使用--user
安装(通过在~/.config/pip/pip.conf
设置此项,但是在venv中使用“普通”(in-venv)安装(做--user
安装甚至可以让您大吃一惊吗?)。
有两种可能的解决方案(其中只有第一种可以通过pip真正实现,但我也可以从这里开始讨论)
~/.config/pip/pip-novenv.conf
或其他),或--user
成为venv中的无操作对象(再次,我不确定--user
+ venv是否有意义:只有一个~/.local/lib/pythonX.Y
所以所有隔离都在那里被破坏了)。问题仍然存在于Python 3.5.3中。
具有讽刺意味的是,令人沮丧的是,如果尝试对环境保持谨慎,以至于使用虚拟环境并在pip.conf中安装用户,那么最终将出现无法正常工作的系统。
我试图避免让团队成员使用sudo pip
。 它越来越难。
这不是virtualenv
的错误-使用某些选项时未设置PIP_CONFIG_FILE=/dev/null
吗?
哦,今天被这个咬了。
有人可以提供有关如何重现此内容的明确说明吗?
最有用的评论
我当前的解决方法是通过
virtualenvwrapper
的postactivate
钩子将$PIP_CONFIG_FILE
为/dev/null
并将其取消设置在postdeactivate
。