Установка пакета из ветки Git-репозитория с помощью pip
Я пытаюсь установить конкретную ветку репозитория с помощью 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 ответ(ов)
Использование 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
Для установки пакета из частного репозитория с использованием 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.
Это сработало как 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
Чтобы добавить нужный пакет в ваш файл pip
, вы можете сделать это следующим образом:
-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal
Имейте в виду, что он будет сохранён в формате egg.
Ваше предложение из вопроса оказалось для меня полезным. Например, использование команды:
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 - из основной ветки, так что все сработало!
Как обновить pip изнутри виртуального окружения?
Как установить pip на macOS или OS X?
Узнать, какая версия пакета установлена с помощью pip
Ошибка EnvironmentError: не найден mysql_config при установке mysql-python с помощью pip
Как заставить pip переустановить текущую версию?