티스토리 뷰

"편집 가능한"패키지 구문requirements.txt다양한 VCS (git, hg, bzr, svn) 에서 패키지를 가져 오는 데 사용할 수 있습니다 .

-e git://github.com/mozilla/elasticutils.git#egg=elasticutils

또한 특정 커밋을 가리킬 수 있습니다.

-e git://github.com/mozilla/elasticutils.git@000b14389171a9f0d7d713466b32bc649b0bed8e#egg=elasticutils
-------------------

일반적으로 requirements.txt파일은 다음과 같습니다.

package-one==1.9.4
package-two==3.7.1
package-three==1.0.1
...

Github 저장소를 지정하려면 package-name==규칙이 필요하지 않습니다 .

아래 예제 package-two는 GitHub 저장소를 사용하여 업데이트 됩니다. @사이의 텍스트 #는 패키지의 세부 사항을 나타냅니다.

커밋 해시를 지정합니다 ( 41b95ecupdated 컨텍스트에서 requirements.txt) :

package-one==1.9.4
git+git://github.com/path/to/package-two@41b95ec#egg=package-two
package-three==1.0.1

지점 이름 지정 ( master) :

git+git://github.com/path/to/package-two@master#egg=package-two

태그 지정 ( 0.1) :

git+git://github.com/path/to/package-two@0.1#egg=package-two

릴리스 지정 ( 3.7.1) :

git+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two

참고 #egg=package-two여기에 코멘트하지 않습니다, 그것은 것입니다 명시 적으로 패키지 이름을 명시

이 블로그 게시물 에는 주제에 대한 추가 토론이 있습니다.

-------------------

requirements.txtpip 7.0부터 git 저장소의 패키지에 대한 종속성을 지정하는 다음 방법을 허용합니다. 1

[-e] git+git://git.myproject.org/SomeProject#egg=SomeProject
[-e] git+https://git.myproject.org/SomeProject#egg=SomeProject
[-e] git+ssh://git.myproject.org/SomeProject#egg=SomeProject
-e git+git@git.myproject.org:SomeProject#egg=SomeProject (deprecated as of Jan 2020)

Github의 경우 할 수 있음을 의미합니다 (생략 된 부분에 유의하세요 -e).

git+git://github.com/mozilla/elasticutils.git#egg=elasticutils

추가 답변이 필요한 이유는 무엇입니까? 다른 답변
-e플래그에 다소 혼란스러워서 여기에 설명이 있습니다.

-e또는 --editable패키지가 설치되어 있는지 플래그 수단 <venv path>/src/SomeProject따라서가 아니라 깊이 묻혀에서 <venv path>/lib/pythonX.X/site-packages/SomeProject이 다르게 배치 될 것이다. 2

선적 서류 비치

  • 1 https://pip.readthedocs.org/en/stable/reference/pip_install/#git
  • 2 https://pip.readthedocs.org/en/stable/reference/pip_install/#vcs-support
-------------------

먼저 알고있는 방식 으로 git+git또는로 설치하십시오 git+https. kronokbrabeion프로젝트 분기 설치 예 :

pip install -e git+https://github.com/kronok/brabeion.git@12efe6aa06b85ae5ff725d3033e38f624e0a616f#egg=brabeion

둘째, 사용 pip freeze > requirements.txt당신에 옳은 일을 얻을 requirements.txt. 이 경우, 당신은 얻을 것입니다

-e git+https://github.com/kronok/brabeion.git@12efe6aa06b85ae5ff725d3033e38f624e0a616f#egg=brabeion-master

셋째, 결과를 테스트합니다.

pip uninstall brabeion
pip install -r requirements.txt
-------------------

pip 이후 v1.5(2014 년 1 월 1 일 출시 : CHANGELOG , PR ) 모듈을 포함 할 git repo의 하위 디렉터리를 지정할 수도 있습니다. 구문은 다음과 같습니다.

pip install -e git+https://git.repo/some_repo.git#egg=my_subdir_pkg&subdirectory=my_subdir_pkg # install a python package from a repo subdirectory

참고 : pip 모듈 작성자로서 이상적으로는 가능하다면 자체 최상위 저장소에 모듈을 게시하고 싶을 것입니다. 그러나이 기능은 하위 디렉토리에 파이썬 모듈이 포함 된 기존 저장소에 유용합니다. pypi에도 게시되지 않은 경우 이러한 방식으로 설치해야 할 수 있습니다.

-------------------

pip3 (Ubuntu 18.04의 패키지 관리자가 설치 한 v9.0.1)을 설치하여 실제로 설치하도록 지시하는 것이 다소 까다 롭다는 것을 알았습니다. 나는이 문제에 부딪히는 사람의 시간을 절약하기 위해이 답변을 게시하고 있습니다.

이 파일을 requirements.txt 파일에 넣는 데 실패했습니다.

git+git://github.com/myname/myrepo.git@my-branch#egg=eggname

"실패"란 Git에서 코드를 다운로드하는 동안 해당 브랜치의 리포지토리에있는 코드 대신 PyPi에서 찾은 코드의 원래 버전을 설치하게되었음을 의미합니다.

그러나 분기 이름 대신 commmit을 설치하면 작동합니다.

git+git://github.com/myname/myrepo.git@d27d07c9e862feb939e56d0df19d5733ea7b4f4d#egg=eggname
-------------------

Github에는 내 의견으로는 git 프로토콜을 사용하는 것보다 선호되는 zip 엔드 포인트가 있습니다. 장점은 다음과 같습니다.

  • 지정할 필요가 없습니다. #egg=<project name>
  • Git은 환경에 설치할 필요가 없으므로 컨테이너화 된 환경에 적합합니다.
  • pip 해싱으로 훨씬 더 잘 작동합니다.
  • URL 구조는 기억하기 쉽고 검색하기 쉽습니다.

일반적으로 requirements.txt 항목이 다음과 같이 보이기를 원합니다 -e.

https://github.com/org/package/archive/1a58aa586efd4bca37f2cfb9d9348958986aab6c.zip

메인 브랜치에서 설치하려면 :

https://github.com/org/package/archive/main.zip


출처
https://stackoverflow.com/questions/39930040
댓글
공지사항
Total
Today
Yesterday
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31