Конфигурирование так, чтобы установка pip могла работать с github - PullRequest
201 голосов
/ 23 ноября 2011

Мы бы хотели использовать pip с github для установки частных пакетов на наши производственные серверы.Этот вопрос касается того, что должно быть в репозитории github, чтобы установка прошла успешно.

Предполагается следующая командная строка (которая очень хорошо аутентифицируется и пытается установить):

pip install git+ssh://git@github.com/BlahCo/search/tree/prod_release_branch/ProductName

Что должно находиться в ProductName?Это содержимое того, что обычно будет в файле tar после запуска setup.py с опцией sdist, или это настоящий файл tar.gz, или что-то еще?

Я спрашиваю здесь, потому что я 'Я попробовал несколько вариантов и не могу заставить его работать.Любая помощь приветствуется.

Ответы [ 4 ]

265 голосов
/ 24 ноября 2011

Вам нужен весь пакет python с файлом setup.py.

Пакет с именем foo будет выглядеть так:

foo # the installable package
├── foo
│   ├── __init__.py
│   └── bar.py
└── setup.py

И будет установлен из github, как1008 *

$ 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

103 голосов
/ 05 декабря 2011

У меня была похожая проблема, когда мне приходилось устанавливать из 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.

25 голосов
/ 18 августа 2016

Если вы хотите использовать 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 пакета.

11 голосов
/ 01 сентября 2016

Клонируйте целевой репозиторий точно так же, как вы клонируете любой другой проект:

git clone git@github.com:myuser/foo.git

Затем установите его в режиме разработки:

cd foo
pip install -e .

Вы можете изменить все, что хотите, и каждыйкод, использующий пакет foo, будет использовать модифицированный код.

У этого решения есть 2 преимущества:

  1. Вы можете установить пакет в каталог ваших домашних проектов.
  2. Пакет включает в себя .git dir, так что это обычный Git-репозиторий,Вы можете сразу нажать на вилку.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...