ChatGPT解决这个技术问题 Extra ChatGPT

从 git repo 分支安装 pip

尝试 pip 安装存储库的特定分支。谷歌告诉我

pip install 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。

我如何安装这个分支?

对我来说,您的建议工作,例如 pip install https://github.com/user/repo.git@branchpip install -U git+https://github.com/moskomule/anatome.git@dev 工作。也许删除额外的 /

0
0x90

添加 url 前缀 git+(参见 VCS Support):

pip install git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6

并指定不带前导 / 的分支名称。


是否必须通过 @ 指定分支或提交?
@eugene,不,@ 和之后的部分是可选的。
用于分支,例如:pip install -U git+https://github.com/danreeves/wagtailgmaps@3.0.0
您也可以将类似 git+https://github.com/adiralashiva8/robotframework-metrics@v3.1.4 的内容放入您的 requirements.txt,然后使用 pip install -r requirements.txt 进行安装。这将从 master 分支安装 Tag v3.1.4。
@SmartManoj,网址中的 .git?它源自 github 克隆按钮单击上显示的 url。
T
Teymour Aldridge

使用 pip 和 git+ 克隆存储库可能非常慢(例如,使用 https://github.com/django/django@stable/1.6.x 进行测试,需要几分钟)。我发现的最快的东西,它适用于 GitHub 和 BitBucket,是:

pip install https://github.com/user/repository/archive/branch.zip

对于 Django 大师来说,这变成了:

pip install https://github.com/django/django/archive/master.zip

对于 Django 稳定版/1.7.x:

pip install https://github.com/django/django/archive/stable/1.7.x.zip

使用 BitBucket,它具有相同的可预测模式:

pip install https://bitbucket.org/izi/django-admin-tools/get/default.zip

这里,master分支一般命名为default。这将使您的 requirements.txt 安装速度更快。

其他一些答案提到了将要安装的软件包放入 requirements.txt 时所需的变体。请注意,使用此归档语法,前导 -e 和尾随 #egg=blah-blah 不需要,您只需粘贴 URL,因此您的 requirements.txt 如下所示:

https://github.com/user/repository/archive/branch.zip

注意: 从 Django 1.9 开始,Django 附带一个包含 unicode filename 的文件。 pip 扼流圈使用的拉链提取器。一个简单的解决方法是将 .zip 替换为 .tar.gz,因为 tar 提取器有效。
我想知道 pip 在克隆时是否可以通过 --depth 0 以提高效率(不需要整个 git 历史记录来为 pip 安装快照)。 git-scm.com/docs/git-clone
这也适用于提交哈希! pip install https://github.com/django/django/archive/ebaa08b.zip
感谢您指出速度差异。我没有测试和比较它们,但我相信速度差异确实存在,因为从分支安装仍然会导致下载整个 repo 历史记录,而从 .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] 但这会破坏 URL 和安装。
v
vikas027

使用 ssh 凭据从私人仓库安装的说明:

$ pip install git+ssh://git@github.com/myuser/foo.git@my_version

要从子目录安装软件包,请说 stackoverflow

$ pip install git+ssh://git@github.com/myuser/foo.git@my_version#subdirectory=stackoverflow

https://pip.pypa.io/en/stable/topics/vcs-support/


我们能得到这个的源代码/文档吗?我喜欢这个解决方案。
我实际上不确定我在哪里找到它。
@JustinRice official documentation for pip 可能是一个很好的来源。
R
Reblochon Masque

只是添加一个额外的,如果你想在你的 pip 文件中安装它,可以这样添加:

-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,它对我不起作用
D
Deepak Sharma

这就像魅力:

pip3 install git+https://github.com/deepak1725/fabric8-analytics-worker.git@develop

在哪里 :

开发:分支

fabric8-analytics-worker.git:回购

deepak1725:用户


感谢您提供完整的解释。 :)
p
prosti

您使用了 egg 文件安装程序。此过程支持通过 gitgit+httpgit+httpsgit+sshgit+gitgit+file 安装。其中一些被提及。

您可以使用分支、标签或哈希进行安装,这很好。

@Steve_K 指出使用“git+”安装可能会很慢,并建议通过 zip 文件安装:

pip install https://github.com/user/repository/archive/branch.zip

或者,我建议您可以使用 .whl 文件(如果存在)进行安装。

pip install https://github.com/user/repository/archive/branch.whl

这是相当新的格式,比鸡蛋文件更新。它需要 wheel 和 setuptools>=0.8 包。您可以在 here 中找到更多信息。


该问题未指定给github。 archive/branch.zip 的概念仅适用于 github。
J
Javad Nikbakht

Pip 是 python 的包管理器。您可以从 PyPI 等一些 Python 存储库下载 Python 库。您还可以从 git 存储库下载库。这将是本文要解释的问题。

您可能知道,您可以使用 httpssh 这两个协议在 git 存储库上执行某些操作。使用协议 ssh 而不是 http 可能会提供一些易用性。由于 ssh 的性质,您可以使用您的 主/公钥 做一些事情。因此,您不必一直输入您的凭据。但我会为两者让路;

以下是 Github 存储库的示例;

对于 HTTP

pip install git+https://github.com/<project_owner>/<project_name>

对于 SSH

pip install git+ssh://git@github.com/<project_owner>/<project_name>.git

对于本地 Git 存储库

pip install git+file///path/to/your/git/project/

安装一个特殊的分支、标签或提交

上述命令只会安装默认分支中可用的内容。在大多数情况下,您希望针对特定的分支、标签甚至是提交。这可以通过向 git 字符串提供 ‍‍‍‍‍@ 参数来实现。

例子:

pip install git+https://github.com/nezhar/django-model-prefix@a5cabf1ac210b6358ea358b1d268d802114d85d4

为 extras_require 提供选项

某些软件包在 setup.pysetup.cfg 内提供 extras_require。为了在安装过程中定位它们,必须提供 #egg 参数作为包含包名称和 extras_require 选项的值。

例子:

pip install git+https://github.com/anexia-it/jsonschema@draft2020-12#egg=jsonschema[format]

C
Charlie Parker

对我来说,你对问题工作的建议,例如

pip install https://github.com/user/repo.git@branch

具体翻译为做

pip install -U git+https://github.com/moskomule/anatome.git@dev

工作。也许删除额外的 / 是多余的。我的输出:

(original_anatome_env) brando~/ultimate-anatome ❯ pip install -U git+https://github.com/moskomule/anatome.git@dev
Collecting git+https://github.com/moskomule/anatome.git@dev
  Cloning https://github.com/moskomule/anatome.git (to revision dev) to /private/var/folders/x4/0xq0brj57xz3dbhbmblypbm00000gr/T/pip-req-build-62d_ghd2
  Running command git clone -q https://github.com/moskomule/anatome.git /private/var/folders/x4/0xq0brj57xz3dbhbmblypbm00000gr/T/pip-req-build-62d_ghd2
  Running command git checkout -b dev --track origin/dev
  Switched to a new branch 'dev'
  Branch 'dev' set up to track remote branch 'dev' from 'origin'.
  Resolved https://github.com/moskomule/anatome.git to commit 4b576e51cb1824a57ea04974e0f92b5a6143294d
Requirement already satisfied: torch>=1.10.0 in /Users/brando/anaconda3/envs/metalearning/envs/original_anatome_env/lib/python3.9/site-packages (from anatome==0.0.6) (1.10.0)
Requirement already satisfied: torchvision>=0.11.1 in /Users/brando/anaconda3/envs/metalearning/envs/original_anatome_env/lib/python3.9/site-packages (from anatome==0.0.6) (0.11.1)
Requirement already satisfied: typing-extensions in /Users/brando/anaconda3/envs/metalearning/envs/original_anatome_env/lib/python3.9/site-packages (from torch>=1.10.0->anatome==0.0.6) (3.10.0.2)
Requirement already satisfied: pillow!=8.3.0,>=5.3.0 in /Users/brando/anaconda3/envs/metalearning/envs/original_anatome_env/lib/python3.9/site-packages (from torchvision>=0.11.1->anatome==0.0.6) (8.4.0)
Requirement already satisfied: numpy in /Users/brando/anaconda3/envs/metalearning/envs/original_anatome_env/lib/python3.9/site-packages (from torchvision>=0.11.1->anatome==0.0.6) (1.21.4)
Building wheels for collected packages: anatome
  Building wheel for anatome (setup.py) ... done
  Created wheel for anatome: filename=anatome-0.0.6-py3-none-any.whl size=10167 sha256=63b12a36f33deb8313bfe7756be60bd08915b8ba36711be47e292b590df70f61
  Stored in directory: /private/var/folders/x4/0xq0brj57xz3dbhbmblypbm00000gr/T/pip-ephem-wheel-cache-rde_ngug/wheels/19/e4/be/01479e8cba62ae8cdcd501cd3bf49e199f2bb94732a6a1b006
Successfully built anatome
Installing collected packages: anatome
  Attempting uninstall: anatome
    Found existing installation: anatome 0.0.5
    Uninstalling anatome-0.0.5:
      Successfully uninstalled anatome-0.0.5
Successfully installed anatome-0.0.6

0.6.0 是 dev 分支版本号,0.5.0 是 master,所以它工作了!


E
Ekremus

对于 windows 和 pycharm 设置:

如果您使用 pycharm 并且如果您想使用 pip3 install git+https://github.com/...

首先,你应该从 https://git-scm.com/downloads 下载 git

然后重启pycharm

你可以使用pycharm终端来安装你想要的

https://i.stack.imgur.com/1U4qQ.png