Использование 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 поддерживаются.