Python pip install via requirements.txt指定直接GitHub私有回购+;分支名称错误,退出状态为128
我正在尝试向我的Python pip install via requirements.txt指定直接GitHub私有回购+;分支名称错误,退出状态为128,python,git,github,pip,requirements.txt,Python,Git,Github,Pip,Requirements.txt,我正在尝试向我的requirements.txt文件中添加一个包,即: 来自私人GitHub回购协议 我是私人回购协议的成员 我已经为私有回购配置了ssh 来自主机以外的分支,其名称中有斜杠 使用ssh协议 互联网上到处都有关于这个话题的问题。以下是关于这一点的建议: pip安装-e“vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir“ 还有一个关于GitHub的答案 git+git://github.com/path/to/pa
requirements.txt
文件中添加一个包,即:
- 来自私人GitHub回购协议
- 我是私人回购协议的成员
- 我已经为私有回购配置了
ssh
- 来自
以外的分支,其名称中有斜杠主机
- 使用
协议ssh
pip安装-e“vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir“
还有一个关于GitHub的答案
git+git://github.com/path/to/package-two@master#egg=第二包
尝试方法#1 我试图在我的
requirements.txt
文件中使用此答案:
-e git+ssh://github.com/Organization/repo-name.git@branch/name#egg=foo
我得到一个错误:
ERROR: Command errored out with exit status 128: git clone -q ssh://github.com/Organization/repo-name.git /path/to/venv/src/foo Check the logs for full command output.
当我使用--log
选项查看日志时:
从/path/to/venv/lib/python3.8/site-packages/pip(python 3.8)使用PIP20.2
非用户安装,因为用户站点包已禁用
已创建临时目录:/private/var/folders/yl/tnzf__856m90wwx0jrqwmhbw0000gn/T/pip ephem wheel cache yysggsvl
已创建临时目录:/private/var/folders/yl/tnzf__856m90wwx0jrqwmhbw0000gn/T/pip-req-tracker-ckqzav7i
在/private/var/folders/yl/tnzf__856m90wwx0jrqwmhbw0000gn/T/pip-req-tracker-ckqzav7i处初始化生成跟踪
已创建生成跟踪器:/private/var/folders/yl/tnzf__856m90wwx0jrqwmhbw0000gn/T/pip-req-tracker-ckqzav7i
已输入构建跟踪器:/private/var/folders/yl/tnzf__856m90wwx0jrqwmhbw0000gn/T/pip-req-tracker-ckqzav7i
已创建临时目录:/private/var/folders/yl/tnzf__856m90wwx0jrqwmhbw0000gn/T/pip-install-c9xw78wg
查看索引:https://pypi.org/simple
从git获取foo+ssh://github.com/Organization/repo-name.git@分支机构/名称#egg=foo(来自-r requirements.txt(第6行))
克隆ssh://github.com/Organization/repo-name.git (至修订分支机构/名称)至./venv/src/foo
错误:命令出错,退出状态为128:git clone-qssh://github.com/Organization/repo-name.git /path/to/venv/src/foo检查日志以获得完整的命令输出。
例外信息:
回溯(最近一次呼叫最后一次):
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/cli/base_command.py”,第216行,在_main中
status=self.run(选项、参数)
包装器中的文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/cli/req_command.py”,第182行
返回函数(自身、选项、参数)
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/commands/install.py”,第324行,处于运行状态
需求集合=解析器.resolve(
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/resolution/legacy/resolver.py”,第183行,在resolve中
发现的需求扩展(自我解决需求集)
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/resolution/legacy/resolver.py”,第388行,在_resolve_one中
abstract\u dist=self.\u获取(需要安装)的abstract\u dist\u
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/resolution/legacy/resolver.py”,第326行,位于
返回自我准备人准备可编辑需求(req)
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/operations/prepare.py”,第523行,在prepare\u editable\u需求中
请求更新\u可编辑(非自行下载\u应保存)
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/req/req_install.py”,第664行,在update_可编辑文件中
vcs_backend.get(self.source_dir,url=hidden_url)
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/vcs/versioncontrol.py”,第641行,在获取中
self.fetch\u new(dest、url、rev\u选项)
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/vcs/git.py”,第230行,在fetch_new中
self.run_命令(make_命令('clone','-q',url,dest))
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/vcs/versioncontrol.py”,第771行,在run_命令中
返回调用_子进程(cmd、cwd、,
文件“/path/to/venv/lib/python3.8/site packages/pip/_internal/vcs/versioncontrol.py”,第166行,在call_子流程中
引发子流程错误(exc_msg)
pip.\u internal.exceptions.SubProcessError:命令出错,退出状态为128:git clone-qssh://github.com/Organization/repo-name.git /path/to/venv/src/foo检查日志以获得完整的命令输出。
已删除生成跟踪器:“/private/var/folders/yl/tnzf__856m90wwx0jrqwmhbw0000gn/T/pip-req-tracker-ckqzav7i”
尝试方法#2 我尝试的另一种方法是
requirements.txt
:
-e git+git@github.com:Organization/repo-name.git#egg=foo
此中的克隆实际上有效!它还打印以下警告:DEPRECATION:此形式的VCS要求已被弃用
不幸的是,我不知道如何以这种格式指定分支名称
我做错了什么?我遗漏了什么吗? 仅供参考,我的版本:
Python==3.8.5
pip==20.2
setuptools==47.1.0
我在这两种情况下都解决了问题……语法
尝试#1 错误:需要说
git@github.com
正确的方法:
-e git+ssh://git@github.com/Organization/repo-name。git@branch/名称#egg=foo
尝试#2 错误:不知道一个人可以使用
@
两次
正确的方法:
-e git+git@github.com:组织/回购名称。git@branch/名称#egg=foo
我遇到了同样的问题,下面是我如何使它工作的:
以下是有关如何安装专用Python包的文档:
requirements.txt
中,我添加了:
-e git+https://GITHUB_TOKEN_HERE@github.com/user/repository.git#egg=your_module_name
是关于私有回购的吗?我的意思是,为了从私有回购中克隆,您需要权限,即用户/通行证/私钥etc@LutfarRahmanMilu我更新了问题,是的,我