我已经使用命令安装了一个库
pip install git+git://github.com/mozilla/elasticutils.git
它直接从Github存储库安装。这工作得很好,我想在我的需求。txt的依赖。我看了其他类似的票,但这并没有解决我的问题。如果我放
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
在requirements.txt文件中,PIP install -r requirements.txt的结果如下:
Downloading/unpacking elasticutils==0.7.dev (from -r requirements.txt (line 20))
Could not find a version that satisfies the requirement elasticutils==0.7.dev (from -r requirements.txt (line 20)) (from versions: )
No distributions matching the version for elasticutils==0.7.dev (from -r requirements.txt (line 20))
需求文件的文档没有提到使用git+git协议说明符的链接,所以这可能是不支持的。
有人能解决我的问题吗?
对于私有存储库,我发现这两个对我来说很好:
pip install https://${GITHUB_TOKEN}@github.com/owner/repo/archive/main.tar.gz
其中main.tar.gz指的是回购的主分支,可以用其他分支名称替换。有关更多信息和使用最新的Github API请参阅这里:
pip install https://${GITHUB_TOKEN}@api.github.com/repos/owner/repo/tarball/master
如果您已经安装了git并且可用,那么
pip install git+https://${GITHUB_TOKEN}@github.com/owner/repo.git@main
实现了相同的功能,并且还允许通过添加@branch或@tag或@commit-hash来实现更大的灵活性。然而,这种方法实际上是将回购复制到本地临时文件夹中,这可能会花费大量的时间。
你也可以使用requirements.txt中的url。
首先,安装git+git或git+https,以任何你知道的方式。安装brabeion项目kronok分支的例子:
pip install -e git+https://github.com/kronok/brabeion.git@12efe6aa06b85ae5ff725d3033e38f624e0a616f#egg=brabeion
其次,使用pip freeze > requirements.txt在requirements.txt中获取正确的内容。在这种情况下,你会得到
-e git+https://github.com/kronok/brabeion.git@12efe6aa06b85ae5ff725d3033e38f624e0a616f#egg=brabeion-master
第三,检验结果:
pip uninstall brabeion
pip install -r requirements.txt
我发现让pip3 (v9.0.1版本,由Ubuntu 18.04的包管理器安装)实际安装我告诉它安装的东西有点棘手。我发布这个答案是为了节省遇到这个问题的人的时间。
将此放入requirements.txt文件失败:
git+git://github.com/myname/myrepo.git@my-branch#egg=eggname
我所说的“失败”是指当它从Git下载代码时,它最终安装了在PyPi上找到的原始版本的代码,而不是在该分支上的repo中的代码。
然而,安装提交而不是安装分支名称是有效的:
git+git://github.com/myname/myrepo.git@d27d07c9e862feb939e56d0df19d5733ea7b4f4d#egg=eggname