Установка pip из ветки git repo

Пытаясь 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.

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

9 ответов

Решение

Добавить префикс URL git+ (См. Поддержка VCS):

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

И укажите название ветви без ведущего /,

Использование pip с git+ для клонирования репозитория может быть очень медленным (например, протестируйте с https://github.com/django/django@stable/1.6.x, это займет несколько минут). Самая быстрая вещь, которую я нашел, которая работает с GitHub и BitBucket, это:

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

что делается для мастера Джанго:

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

для django stable/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, Обратите внимание, что с этим синтаксисом архива, ведущий -e и тянущийся #egg=blah-blah не требуются, и вы можете просто вставить URL-адрес, чтобы ваш файл require.txt выглядел следующим образом:

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

Инструкции по установке из частного репозитория с использованием учетных данных ssh.

Для использования:

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

Для развития:

$ git clone git@github.com/myuser/foo.git@my_version
$ pip install --editable ./

Это сработало как шарм:

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

Куда:

develop: Branch

fabric8-analytics-worker.git: Репо

deepak1725: пользователь

Просто для добавления дополнительного, если вы хотите установить его в свой файл pip, его можно добавить так:

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

Это будет сохранено как яйцо все же.

Вы использовали процедуру установки яичных файлов. Эта процедура поддерживает установку поверхgit, git+http, git+https, git+ssh, git+git а также git+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. Вы можете найти больше здесь.

мне ваше предложение из вопросной работы, например

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

Pip — менеджер пакетов Python. Вы можете загрузить библиотеки Python из некоторых репозиториев Python, таких как PyPI. Вы также можете скачать библиотеки срепозиторий. Это будет проблема, которая будет объяснена в этой статье.

Как вы, возможно, знаете, вы можете использовать два протокола, которыеа такжесделать что-то на gitрепозитории. Использование протоколавместо 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.pyили же setup.cfg. Чтобы ориентироваться на них в процессе установки, #eggаргумент должен быть указан как значение, которое содержит имя пакета и параметр для extras_require.

Пример:

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

Для настройки windows и pycharm:

Если вы используете pycharm и хотите использовать pip3 install git+https://github.com/...

  • во-первых, вы должны скачать git с https://git-scm.com/downloads
  • затем перезапустите pycharm
  • и вы можете использовать терминал pycharm для установки того, что хотите

Другие вопросы по тегам