2013-11-20 5 views
6

У меня есть один пакет python A, который зависит от другого частного пакета с именем godot (размещен на bitbucket и должен быть доступен по протоколу git + ssh). В setup.py пакет А, я бы следующий код:pip install private package

... 
install_requires=['godot'], 
dependency_links=['git+ssh://[email protected]/xxx/godot.git#egg=godot'] 
... 

У меня есть два вопроса:

  1. Теперь Setuptools 1,4 (последняя стабильная версия) не поддерживает 'мерзавца + SSH' протокола, только код в ветке разработки обрабатывает этот протокол: Python setuptools: How can I list a private repository under install_requires?. Я установил версию развития через:

    pip install --upgrade --force-reinstall hg+https://bitbucket.org/pypa/setuptools#egg=setuptools

    Я почти решил эту проблему немного, но мне интересно, если имеется какой-либо другой подход? Invoke pip install -r requirements.txt (есть git + ssh: //[email protected]/xxx/godot.git#egg=godot список в файле требований.txt)?

  2. Второй вопрос - конфликт имен. Существует еще один пакет на PyPi также назвали Года, поэтому при установке пакета A с помощью команды последующого Пипа установить Года из индекса PyPi:

    pip install git+ssh://[email protected]/xxx/A.git#egg=A

    Как мог заставить пип (setup.py), чтобы установить частные Годот, а не на индекс pypi?

ответ

0

Для части 1: вы можете установить пакеты через пип, указав, как:

$ pip install http://my.package.repo/SomePackage-1.0.4.zip 

Чтобы сохранить его простым и не тратить излишнее время на это, я бы просто скачать исходный файл .zip и установить как описано выше.

Смотреть here ...

Для части 2: пункт имеет --no-dependencies переключатель. Добавьте, что после установки всех зависимостей вручную