11

Установка пакета из ветки Git-репозитория с помощью pip

18

Я пытаюсь установить конкретную ветку репозитория с помощью pip. Поиск в Google подсказывает мне следующую команду:

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.

Как мне установить эту ветку?

5 ответ(ов)

4

Использование 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

Здесь основная ветка обычно называется default. Это сделает установку из вашего requirements.txt значительно быстрее.

Некоторые другие ответы упоминают варианты, которые необходимо учесть при размещении пакета, который вы хотите установить, в вашем requirements.txt. Обратите внимание, что с использованием этого синтаксиса архива не требуется добавлять ведущий -e и завершающий #egg=blah-blah, вы можете просто вставить URL, так что ваш requirements.txt будет выглядеть так:

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

Для установки пакета из частного репозитория с использованием ssh-учетных данных выполните следующую команду:

$ pip install git+ssh://[email protected]/myuser/foo.git@my_version

Если вам нужно установить пакет из подкаталога, например stackoverflow, используйте следующую команду:

$ pip install git+ssh://[email protected]/myuser/foo.git@my_version#subdirectory=stackoverflow

Дополнительную информацию можно найти в документации pip.

0

Это сработало как charm:

pip3 install git+https://github.com/user/repo.git@develop
Поле Значение
Протокол https
Пользователь user
Репозиторий repo
Ветка develop

Вот конкретный пример: pip3 install git+https://github.com/deepak1725/fabric8-analytics-worker.git@develop

0

Чтобы добавить нужный пакет в ваш файл pip, вы можете сделать это следующим образом:

-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal

Имейте в виду, что он будет сохранён в формате egg.

0

Ваше предложение из вопроса оказалось для меня полезным. Например, использование команды:

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 - из основной ветки, так что все сработало!

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь