如何解决pip从GitHub安装时自动添加多余斜杠导致失败的问题
问题根因
- 该异常并非pip的独立功能bug,本质是输入的VCS仓库URI格式不符合规范,触发了pip的字符串路径拼接异常。
- 你执行的安装指令中,协议段写为
git+ssh:git@...,缺少SSH协议URI要求的双斜杠分隔符。pip在解析该不完整路径时,会自动拼接路径分隔符补全协议格式,最终生成了错误的克隆地址ssh:///git@github.com/jupyterhub/nativeauthenticator.git——这个地址把ssh识别为主机名,后续的仓库路径被当成三级斜杠下的目录路径,因此才会触发Could not resolve hostname ssh的报错。 - 你手动执行修正斜杠后的
git clone ssh://git@github.com/...可正常完成克隆,刚好验证了格式问题的根源:只要把URI的协议段补全为标准的git+ssh://(双斜杠),pip生成的克隆命令就不会出现多余斜杠的拼接错误。 - 你提到的
git+https、git+git方式安装也报同类错误,逻辑完全一致:这类VCS URI规范要求协议名后必须接://双斜杠,缺了双斜杠都会被pip错误拼接路径。 - pip本身不会主动校验VCS URI的格式合规性,只会按照字符串拼接逻辑生成git clone命令,因此格式疏漏会直接传导到底层git命令的执行环节。
正确的安装指令
- 非可编辑模式安装:
pip install git+ssh://git@github.com/jupyterhub/nativeauthenticator.git#egg=nativeauthenticator - 可编辑模式安装(用于本地二次开发调试):
pip install -e git+ssh://git@github.com/jupyterhub/nativeauthenticator.git#egg=nativeauthenticator
补充说明
- 你当前使用的pip 21.0.1版本原生支持git+ssh协议的安装逻辑,只要URI格式符合规范,就不会触发路径拼接错误,不需要额外升级pip或修改本地git、pip配置。
内容的提问来源于stack exchange,提问作者Davide
相关产品推荐
相关产品推荐

