28

使用 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

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

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

4

1 回答 1

37

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

--exists-action 选项

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

  • (转变

    仅与 VCS 结帐相关。尝试将结帐切换到适当的 url 和/或修订版。

  • (忽视

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

  • (擦拭

    在尝试创建、下载或签出新文件之前删除文件或 VCS 签出。

  • (b)备份

    将文件或签出重命名为{name}{'.bak' * n},其中 n 是一些.bak扩展名,这样文件在某些​​时候不存在。因此,最近的备份将是 之后编号最大的备份.bak

这里是现在更新的文档中该选项描述的链接: https ://pip.pypa.io/en/stable/cli/pip/#exists-action-option 。

于 2014-04-25T14:40:37.780 回答