2012-06-26 1 views
0

필자는 Python으로 사용자가 제공 한 플래그 및/또는 사용자 지정 플래그를 기반으로 대상 프로젝트/virtualenv에서 다양한 다른 모듈을 확인 (필요한 경우 설치 및 업그레이드)해야하는 유틸리티를 작성하고 있습니다. 입력. 나는 현재 'pip'를 직접적/프로그램 적으로 활용하려고 노력하고 있는데 (액세스해야하는 다양한 repo 유형에 대한 기존 지원 때문에),이 방법으로 예제 나 문서를 찾는 데 어려움을 겪고 있습니다. 파이썬 스크립트 내에서 pip 사용하기

갈 방향처럼 보였다 :

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

을 ...하지만 기쁨을 제공하지 않습니다.

필자는 pip를 사용하여 svn repo의 복사본을 주어진 로컬 디렉토리로 내보내는 것과 같은 몇 가지 기본 사항에 대해 도움을 청합니다. 궁극적으로 표준 피피 설치뿐 아니라 git 및 수은 결제에도 사용해야합니다. 모든 링크, 문서 또는 포인터가 많이 감사하겠습니다.

+0

당신이 무엇을 의미합니까 지원 "기쁨을주지 않는다"하는 VCS 알고? 오류 메시지가 나타 납니까? 그냥 설치되지 않습니까? –

+0

값을 설치하거나 반환하지 않습니다. 그런 다음 vcs 객체에서 'obtain'메소드를 사용하여 사용하지 않으려 고 시도했습니다. 실제로 오류가 발생했습니다. 난 그냥 그것에 대한 예제 또는 문서의 일종이 필요하거나 그냥 "최고의 사례"이런 종류의 사용합니다. – growlf

+0

** 범프 ** ... 누구? 간결한조차도 "X"를 읽으십시오! X가 접근 가능하고 모든 빛을 밝힐 수있는 한 크게 감사하겠습니다. – growlf

답변

1

Pip은 vcs URL에 특정 형식을 사용합니다. 형식은 당신이

을 할 수있는 로컬 디렉토리에 일반 VCS에서 저장소를 검색하는 PIP를 사용하려면

태그를/특정 커밋을 참조하는 데 사용할 수 있습니다,

[email protected] 

@rev는 선택 사항입니다

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

+0

위의 링크가 끊어졌습니다 (끝없는 리디렉션 루프).하지만 어쨌든 내가 찾고 있었던 것은 아닙니다. pip 모듈에 대한 문서는 어디에 있습니까? 내가 pip 명령 줄 도구에 대한 모든 종류의 문서를 찾을 수 있지만 pip 모듈 자체에 대한 아무것도. – machomeautoguy

+0

링크를 업데이트했습니다. 필자가 pip 모듈에 대한 실제 문서를 읽은 적이 없다고 생각합니다. 소스 코드를 확인한 것 같습니다 (죄송합니다. 너무 많은 시간이 지났습니다). –

+0

그래, 난 명령 줄 밖에서 문서의 방법에별로 없기 때문에 같은 일을 해왔다. 답장을 보내 주셔서 감사합니다. – machomeautoguy