如何使用“pip install git+ssh”安装附加功能?

Mar*_*oma 7 python git pip tox

我有一个内部 Python 包,我安装tox

pip install git+ssh://git@bitbucket.org/org/repo.git
Run Code Online (Sandbox Code Playgroud)

这有效。

不起作用的是安装额外的server.

我尝试过的

pip install git+ssh://git@bitbucket.org/org/repo.git[server]`
Run Code Online (Sandbox Code Playgroud)

git 克隆失败,错误代码为 128(无法克隆)

pip install git+ssh://git@bitbucket.org/org/repo.git [server]
Run Code Online (Sandbox Code Playgroud)

克隆有效,Invalid requirement: '[server]'(解析异常

pip install -e git+ssh://git@bitbucket.org/org/repo#egg=repo[server]
Run Code Online (Sandbox Code Playgroud)

无法检测“git+ssh://git@bitbucket.org/org/repo.git”的要求名称,请使用 #egg=your_package_name 指定一个


我想我可能会受到这个错误的影响:How can I install extras with `pip install git+ssh`?

我的(简化)tox.ini

[tox]
skipsdist = True
envlist = begin,py35,py36,end

[testenv]
commands =
    pip install -e git+ssh://git@bitbucket.org/org/repo#egg=repo[server]
Run Code Online (Sandbox Code Playgroud)

Gia*_*tta 3

您可以使用--install-option将选项转发到setuptools,因此以下操作应该有效:

pip install --install-option="--extras-require=server" git+ssh://git@bitbucket.org/org/repo.git
Run Code Online (Sandbox Code Playgroud)

也可以看看:

$ pip install --help

Usage:   
  pip install [options] <archive url/path> ...

[...]

Install Options:
  [...]
  --install-option <options>  Extra arguments to be supplied to the setup.py install command (use like --install-option="--install-scripts=/usr/local/bin"). Use multiple --install-option options to pass multiple options to setup.py install. If you are
                              using an option with a directory path, be sure to use absolute path.
  --global-option <options>   Extra global options to be supplied to the setup.py call before the install command.
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这与在方括号中传递额外内容不同。当执行`pip install git+url#egg=name[extras]`时,额外的内容由`pip`解析和安装,而传递安装选项意味着`pip`将忽略额外的内容,它们将由`pip`管理easy_install`(如果安装脚本中使用了`setuptools.setup`)或通过stdlib(`distutils.core.setup`情况)。 (2认同)
  • 这可能会导致各种安装错误,因为 `--install-option` 会传播到 extra(例如:`pip install --install-option="--extras-require=dmypy" git+https://github.com/ hoefling/mypy.git#egg=mypy` 将失败并出现错误 `Running setup.py install for typed-ast ... error: option --extras-require not recognize`),或者出现您无法执行的情况卸载依赖项,因为执行了“旧且无法管理”的安装,并且“pip”拒绝卸载并显示消息“这是一个 distutils 安装的项目...”。 (2认同)