当使用pip从存储库安装包时,使用(i)gnore,(w)ipe,(b)ackup选项意味着什么?

Ant*_*off 27 python git pip

使用pip安装软件包时,我收到以下消息:

Obtaining some-package from git+git://github.com/some-user/some-package.git@commit-hash#egg=some_package-dev (from -r requirements.txt
 (line 3))
  git clone in /Users/me/Development/some-env/src/some-package exists with
 URL https://github.com/some-user/some-package.git
  The plan is to install the git repository git://github.com/some-user/some-package.git
What to do?  (s)witch, (i)gnore, (w)ipe, (b)ackup
Run Code Online (Sandbox Code Playgroud)

我看到这个特殊情况可能是由URL中的协议更改引起的(新需求使用git://,而已安装的使用https://).

但是,我想知道如果我选择其中一个选项(切换,忽略,擦除,备份)会发生什么.我无法在pip文档中找到解释.

Dan*_*ing 36

解释此选项的补丁已合并到PIP文档中,但直到Pip 6.0(2014-12-22)才发布.(https://github.com/pypa/pip/commit/b5e54fc61c06268c131f1fad3bb4471e8c37bb25).这是补丁说的:

--exists-action选项

此选项指定路径已存在时的默认行为.可能的情况:下载文件或签出存储库以进行安装,创建存档.如果--exists-action未定义,则pip将在需要决策时提示.

  • (开关

    仅与VCS结账相关.尝试将结帐切换到相应的URL和/或修订.

  • (忽视

    中止当前操作(例如,不复制文件,不创建存档,不修改结帐).

  • (擦拭

    在尝试创建,下载或签出新文件之前删除文件或VCS checkout.

  • (b)中ackup

    将文件或结帐重命名为{name}{'.bak' * n},其中n是一些.bak扩展名,以便文件在某些​​时候不存在.因此,最近的备份将是之后具有最大数量的备份.bak.

以下是现在更新文档中该选项说明的链接:https: //pip.pypa.io/en/latest/reference/pip.html#exists-action-option.