Мы хотели бы использовать pip с github для установки частных пакетов на наши производственные серверы. Этот вопрос касается того, что должно быть в репозитории github, чтобы установка была успешной.
Предполагая следующую командную строку (которая аутентифицируется просто и пытается установить):
pip install git+ssh://git@github.com/BlahCo/search/tree/prod_release_branch/ProductName
Что нужно для размещения в ProductName? Является ли это содержимым того, что обычно будет в tar файле после запуска setup.py с параметром sdist или является фактическим файлом tar.gz или чем-то еще?
Я спрашиваю здесь, потому что я пробовал несколько вариантов и не могу заставить его работать. Любая помощь была оценена.
Ответ 1
Вам нужен весь пакет python с файлом setup.py
.
Пакет с именем foo
будет выглядеть следующим образом:
foo # the installable package
├── foo
│ ├── __init__.py
│ └── bar.py
└── setup.py
И установите из github, как:
$ pip install git+https://github.com/myuser/foo.git@v123
or
$ pip install git+https://github.com/myuser/foo.git@newbranch
Дополнительная информация на https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support
Ответ 2
У меня была аналогичная проблема, когда мне приходилось устанавливать из github repo, но не хотелось устанавливать git и т.д.
Простой способ сделать это - использовать zip-архив пакета. Добавьте /zipball/master
в URL-адрес репо:
$ pip install https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
Downloading/unpacking https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
Downloading master
Running setup.py egg_info for package from https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
Installing collected packages: django-debug-toolbar-mongo
Running setup.py install for django-debug-toolbar-mongo
Successfully installed django-debug-toolbar-mongo
Cleaning up...
Таким образом, вы будете работать в pip с репозиториями источника github.
Ответ 3
Если вы хотите использовать файл requirements.txt
, вам понадобится git
и что-то вроде записи ниже, чтобы анонимно получить мастер-ветвь в requirements.txt
.
Для обычной установки:
git+git://github.com/celery/django-celery.git
Для " editable" установить:
-e git://github.com/celery/django-celery.git#egg=django-celery
Редактируемый режим загружает исходный код проекта в ./src
в текущем каталоге. Он позволяет pip freeze
выводить правильное местоположение github пакета.
Ответ 4
Клонировать целевой репозиторий так же, как вы клонируете любой другой проект:
git clone git@github.com:myuser/foo.git
Затем установите его в режиме разработки:
cd foo
pip install -e .
Вы можете изменить все, что не хотите, и каждый код с использованием пакета foo
будет использовать модифицированный код.
Есть два преимущества этого решения:
- Вы можете установить пакет в каталог домашних проектов.
- Пакет включает в себя
.git
dir, поэтому он регулярно репозиторий Git. Вы можете сразу нажать на свою вилку.