pip install from git repo branch
尝试pip安装repo的特定分支。 谷歌告诉我
pip install git+https://github.com/user/repo.git@branch
分支的名称是issue/34/oscar-0.6所以我做了pip install https://github.com/tangentlabs/django-oscar-paypal.git@/issue/34/oscar-0.6但它返回了404。
我该如何安装这个分支?
前缀url前缀git+(请参阅VCS支持):
1
| pip install git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6 |
并指定不带前导/的分支名称。
-
是否可以通过@指定分支或提交?
-
@eugene,No,@以及之后的部分是可选的。
-
嘿,现在不是必要的把tree,这起床错误。
-
@SalahAdDin,我不明白你的意思是tree。答案中的给定命令工作正常:i.imgur.com/5q9F0CC.png
-
是分支,例如:pip install -U git+https://github.com/danreeves/[email protected]
-
@SalahAdDin,你给的命令工作得很好。 i.imgur.com/YtzNvMF.png你能解释一下吗?
-
我已经完成了这个,但python/lib/site-packages/my_module文件夹中只有6个文本文件。我希望直接从github repo获得完整的源代码。
-
在相关的说明中,如何在分支之间切换,即,dev回到主分支?
-
@Kambiz,issue/34/oscar-0.6是问题中提到的分支名称。根据需要将其替换为master / dev。 pip install git+https://github.com/tangentlabs/django-oscar-paypal.git@master
-
知道为什么我得到`命令python setup.py egg_info失败,错误代码为1`?
-
在切换分支之前,是否建议在切换之前删除软件包......或做其他事情?
-
@ rickhg12hs,pip install ...将在更新前删除包;我什么都不做。有什么想法吗?
-
我想安装jupyter控制台的主分支,然后当它赶上时切换回正常的pypi jupyter控制台。我只是想知道隐藏在表面之下的陷阱。
-
您也可以将类似git+https://github.com/adiralashiva8/[email protected]的内容放入您的requirements.txt中,然后使用pip install -r requirements.txt进行安装。这将从master分支安装Tag v3.1.4。
使用带git +的pip来克隆存储库可能非常慢(例如,使用https://github.com/django/django@stable/1.6.x进行测试,需要几分钟时间)。我发现的最快的东西是GitHub和BitBucket,它是:
1
| pip install https://github.com/user/repository/archive/branch.zip |
成为django大师:
1
| pip install https://github.com/django/django/archive/master.zip |
对于django stable / 1.7.x:
1
| pip install https://github.com/django/django/archive/stable/1.7.x.zip |
使用BitBucket,它具有相同的可预测模式:
1
| pip install https://bitbucket.org/izi/django-admin-tools/get/default.zip |
这里,主分支通常被命名为default。
这将使您的requirements.txt安装更快。
其他一些答案提到了将要安装的软件包放入requirements.txt时所需的变体。请注意,使用此归档语法时,不需要前导-e和尾随#egg=blah-blah,您只需粘贴URL,因此您的requirements.txt如下所示:
1
| https://github.com/user/repository/archive/branch.zip |
-
注意:从Django 1.9开始,Django附带一个具有unicode文件名的文件。 pip chokes使用的拉链提取器。一个简单的解决方法是将.zip替换为.tar.gz,因为tar提取器可以正常工作。
-
我想知道pip是否可以在克隆时传递--depth 0以使其更高效(不需要为pip安装快照的整个git历史记录)。 git-scm.com/docs/git-clone
-
这也适用于提交哈希! pip install https://github.com/django/django/archive/ebaa08b.zip
-
branch(master)示例不起作用。
-
谢谢你指出速度差异。我没有测试和比较它们,但我相信速度差异确实存在,因为从分支机构安装仍然会导致下载整个仓库历史记录,而从.zip(或.tar.gz)安装将导致仅下载回购的快照。
-
是否可以使用此语法安装附加功能?例如,我正在尝试安装github.com/apache/incubator-airflow @master(普通的PyPI包是apache-airflow)来处理未发布的版本。我想转换调用pip install apache-airflow[crypto, slack]以使用存档版本安装这些额外内容。我试过pip install https://github.com/apache/incubator-airflow/archive/master.zip[crypto, slack],但这打破了网址和安装。
-
好的,所以直接运行pip install似乎是可能的,只需要明确设置egg名称 - pip install https://github.com/apache/incubator-airflow/archive/master.zip#egg=airflow[crypto,slack]。 我之前评论中的额外内容之间的空格也是错误的。 请注意,这个带附加功能的语法似乎在requirements.txt文件中不起作用。
-
请注意,尽管pipenv与pip非常相似,但使用带有pipenv的存档将无法解析依赖关系。
只是添加一个额外的,如果你想在你的pip文件中安装它,可以像这样添加:
1
| -e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal |
它虽然会被保存为鸡蛋。
-
最好在没有-e的情况下使用它。 请参阅:stackoverflow.com/a/34518202/451710
-
感谢您的评论,非常有趣。 我认为人们倾向于使用-e标志来避免与已存在的包存在任何可能的冲突。 我想这是一个选择问题
-
如果你想要"额外",请将它们添加到片段中,就像那样:-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal[PDF]
-
请注意,实际上似乎并不需要-e。
-
出于某种原因,如果没有-e,它对我不起作用
使用ssh凭据从私有存储库安装的说明。
用法:
1
| $ pip install git+ssh://git@github.com/myuser/foo.git@my_version |
用于开发:
1 2
| $ git clone git@github.com/myuser/foo.git@my_version
$ pip install --editable ./ |
您使用了egg文件安装过程。
此过程支持在git,git+http,git+https,git+ssh,git+git和git+file上进行安装。其中一些是提到的。
你可以使用分支,标签或哈希来安装。
@Steve_K注意到使用"git +"安装速度很慢,建议通过zip文件安装:
1
| pip install https://github.com/user/repository/archive/branch.zip |
或者,我建议您使用.whl文件进行安装(如果存在)。
1
| pip install https://github.com/user/repository/archive/branch.whl |
这是一种非常新的格式,比egg文件更新。它需要wheel和setuptools> = 0.8包。你可以在这里找到更多。
-
问题没有指定给github。 archive / branch.zip的概念仅适用于github。