Pip: 〜/ .pip / pip.conf和virtualenv冲突

创建于 2014-10-02  ·  5评论  ·  资料来源: pypa/pip

我在任何地方都找不到此问题的文档,但是如果您在~/.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时发生了。

virtualenv needs repro bug

最有用的评论

我当前的解决方法是通过virtualenvwrapperpostactivate钩子将$PIP_CONFIG_FILE/dev/null并将其取消设置在postdeactivate

所有5条评论

我当前的解决方法是通过virtualenvwrapperpostactivate钩子将$PIP_CONFIG_FILE/dev/null并将其取消设置在postdeactivate

此问题仍然存在。 就我而言,我想在不使用venv时使用--user安装(通过在~/.config/pip/pip.conf设置此项,但是在venv中使用“普通”(in-venv)安装(做--user安装甚至可以让您大吃一惊吗?)。

有两种可能的解决方案(其中只有第一种可以通过pip真正实现,但我也可以从这里开始讨论)

  • 提供仅在venvs之外使用的配置文件位置( ~/.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吗?
哦,今天被这个咬了。

有人可以提供有关如何重现此内容的明确说明吗?

此页面是否有帮助?
0 / 5 - 0 等级