Intereting Posts
Основной процесс ввода SVN Должен ли я сохранить двоичные файлы сторонних библиотек в исходном элементе управления? переместить репозиторий git-svn с пультом дистанционного управления Застрял на попытке создать package.json для реорганизации частной организации Eclipse SVN-проект повторно подключается после удаления метаданных SVN Как решить конфигурацию, зависящую от машины, с SVN и VS2010? Как настроить Git, чтобы вытащить из одного репо и нажать на другой? Получить Travis Shield в Github для отражения выбранного состояния филиала Создание открытого проекта Git при наличии секретных ключей Сделайте слияние в подрывной деятельности, но не записывайте mergeinfo Как я могу автоматически синхронизировать репозиторий Github с репозиторием SourceForge VisualSVN Как отменить номер ревизии? Git: переписывание нескольких коммитов на удаленную ветку функций после локальной загрузки / сквоша Могу ли я увидеть, кто проверил, что с моего сервера subversion? Run Sonar Runner на каждом SVN-коммитете для анализа результатов SVN-файлов

Использование pip в скрипте python

Я пишу утилиту на python, которая должна проверять (и, если необходимо, устанавливать и даже обновлять) различные другие модули в целевом проекте / virtualenv на основе пользовательских флагов и / или ввода. В настоящее время я пытаюсь использовать «pip» напрямую / программно (из-за существующей поддержки различных типов репо, к которым я должен получить доступ), но мне трудно найти примеры или документацию по ее использованию таким образом.

Это казалось направлением:

import pip vcs = pip.vcs.VersionControl(url="http://path/to/repo/") 

… но это не дает радости.

Мне нужна помощь с некоторыми из оснований примерно так: как я могу использовать pip для вытягивания / экспорта копии svn repo в данный локальный каталог. В конечном счете, мне также нужно будет использовать его для git и mercurial checkout, а также для стандартных установок pypi. Любые ссылки, документы или указатели будут высоко оценены.

Solutions Collecting From Web of "Использование pip в скрипте python"

Pip использует определенный формат для URL-адресов vcs. Формат

 vcsname+url@rev 

@rev является необязательным, вы можете использовать его для ссылки на конкретный фиксатор / тег

Чтобы использовать pip для извлечения репозитория из общего vcs в локальный каталог, вы можете сделать это

 from pip.vcs import VcsSupport req_url = 'git+git://url/repo' dest_path = '/this/is/the/destination' vcs = VcsSupport() vc_type, url = req_url.split('+',1) backend = vcs.get_backend(vc_type) if backend: vcs_backend = backend(req_url) vcs_backend.obtain(dest_path) else: print('Not a repository') 

Проверьте https://pip.pypa.io/en/stable/reference/pip_install/#id8, чтобы узнать, какие vcs поддерживаются.