git repo 브랜치에서 pip 설치


686

pip리포의 특정 지점 을 설치 하려고합니다 . 구글은 나에게 말한다

pip install git + https://github.com/user/repo.git@branch

지점의 이름은 issue/34/oscar-0.6내가 pip install https://github.com/tangentlabs/django-oscar-paypal.git@/issue/34/oscar-0.6했지만 404를 반환합니다.

이 지점을 어떻게 설치합니까?

답변:


932

url 접두사 앞에 붙입니다 git+( VCS 지원 참조 ).

pip install git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6

그리고 선행없이 분기 이름을 지정하십시오 /.


5
분기 또는 커밋을 지정하는 것이 좋 @습니까?
eugene

9
@eugene, No @및 그 이후 부분은 선택 사항입니다.
falsetru

3
이봐, 지금은 필요하지 않습니다 tree. 이것은 오류가 발생합니다.
SalahAdDin

6
예를 들면 다음과 같습니다.pip install -U git+https://github.com/danreeves/wagtailgmaps@3.0.0
SalahAdDin

3
당신은 또한 git+https://github.com/adiralashiva8/robotframework-metrics@v3.1.4requirements.txt에 이와 같은 것을 넣고으로 설치할 수 있습니다 pip install -r requirements.txt. 마스터 브랜치에서 Tag v3.1.4를 설치합니다.
Wlad

311

git +와 함께 pip를 사용하여 저장소를 복제하는 것은 매우 느릴 수 있습니다 ( 예 : https://github.com/django/django@stable/1.6.x 로 테스트 하면 몇 분이 소요됨). 내가 찾은 가장 빠른 것은 GitHub 및 BitBucket에서 작동합니다.

pip install https://github.com/user/repository/archive/branch.zip

장고 마스터가됩니다.

pip install https://github.com/django/django/archive/master.zip

장고 안정 /1.7.x의 경우 :

pip install https://github.com/django/django/archive/stable/1.7.x.zip

BitBucket을 사용하면 예측 가능한 패턴과 거의 같습니다.

pip install https://bitbucket.org/izi/django-admin-tools/get/default.zip

여기서 마스터 브랜치는 일반적으로 default라고합니다. 그러면 requirements.txt 설치가 훨씬 빨라집니다.

다른 답변에는 패키지를 설치할 때 필요한 변형이 언급되어 있습니다 requirements.txt. 이 아카이브 구문을 사용하면 선행 -e및 후행 #egg=blah-blah이 필요 하지 않으며 URL을 간단히 붙여 넣기 만하면 requirements.txt가 다음과 같이 표시됩니다.

https://github.com/user/repository/archive/branch.zip

29
참고 : Django 1.9부터 Django는 파일 이름unicode 인 파일 과 함께 제공됩니다 . pip가 사용하는 zip 추출기는 그 위에 있습니다. tar 추출기가 작동하므로 쉬운 해결 방법은로 대체 .zip하는 것 .tar.gz입니다.
스펙트럼

4
pip --depth 0를 복제 할 때 더 효율적으로 만들 수 있는지 궁금합니다 (pip 의 스냅 샷을 설치하는 데 전체 git 기록이 필요하지 않습니다). git-scm.com/docs/git-clone
cs01

6
커밋 해시에서도 작동합니다! pip install https://github.com/django/django/archive/ebaa08b.zip
17

4
속도 차이를 지적 해 주셔서 감사합니다. 나는 그것들을 테스트하고 비교하지는 않았지만, 지점에서 설치하면 여전히 전체 리포지토리 기록이 다운로드되고 .zip(또는 .tar.gz) 에서 설치 하면 리포지토리의 스냅 샷 만 다운로드 되므로 속도 차이가 존재한다고 생각합니다 .
RayLuo

이 구문을 사용하여 추가 기능을 설치할 수 있습니까? 예를 들어, github.com/apache/incubator-airflow @ master (일반 PyPI 패키지는 apache-airflow)를 설치하여 릴리스되지 않은 버전으로 작동하려고합니다. pip install apache-airflow[crypto, slack]이 엑스트라를 보관 버전으로 설치 하기 위해 통화를 변환하고 싶습니다 . 시도 pip install https://github.com/apache/incubator-airflow/archive/master.zip[crypto, slack]했지만 URL과 설치가 중단됩니다.
Taylor Edmiston '

67

ssh 자격 증명을 사용하여 개인 저장소에서 설치하는 방법 :

$ pip install git+ssh://git@github.com/myuser/foo.git@my_version

51

추가를 추가하기 위해 pip 파일에 설치하려면 다음과 같이 추가하십시오.

-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal

계란으로 저장됩니다.


5
없이 사용하는 것이 -e좋습니다. 참조 : stackoverflow.com/a/34518202/451710
Eyal 님 레빈

4
매우 흥미로운 의견에 감사드립니다. 사람들은 -e이미 존재하는 패키지와의 충돌을 피하기 위해 플래그 를 사용하는 경향이 있다고 생각 합니다. 선택의 문제인 것 같습니다
Hassek

4
"extras"를 원한다면 다음과 같이 조각으로 추가하십시오.-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal[PDF]
ankostis

참고이는 것을 -e실제로 필요하지 않는 것 같습니다.
Taylor Edmiston '

어떤 이유로, 그것은없이 나를 위해 작동하지 않습니다-e
커트 Bourbaki

4

에그 파일 설치 절차를 사용했습니다. 이상 설치이 절차 지원 git, git+http, git+https, git+ssh, git+gitgit+file. 이들 중 일부가 언급됩니다.

분기, 태그 또는 해시를 사용하여 설치하는 것이 좋습니다.

@Steve_K는 "git +"로 설치하는 것이 느릴 수 있다고 지적하고 zip 파일을 통한 설치를 제안했습니다

pip install https://github.com/user/repository/archive/branch.zip

또는 .whl파일이 있으면 파일을 사용하여 설치할 수 있습니다.

pip install https://github.com/user/repository/archive/branch.whl

계란 파일보다 새로운 형식입니다. wheel 및 setuptools> = 0.8 패키지가 필요합니다. 자세한 내용은 여기를 참조 하십시오 .


1
질문은 github에 지정되지 않았습니다. archive / branch.zip의 개념은 github에만 해당됩니다.
Jorge Leitao

0

이것은 매력처럼 작동했습니다.

pip3 install git+https://github.com/deepak1725/fabric8-analytics-worker.git@develop

어디 :

개발 : 지점

fabric8 - 분석 - worker.git : 리포

deepak1725 : 사용자

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.