source

git repo에서 pip을 설치할 때 # egg=foo를 사용하는 이유

nicesource 2023. 10. 16. 21:53
반응형

git repo에서 pip을 설치할 때 # egg=foo를 사용하는 이유

gitrepo에서 설치하기 위해 "pip install -e..."을 수행할 때 # egg= some name 또는 pip 불만 사항을 지정해야 합니다.예를 들어,

pip install -e git://github.com/hiidef/oauth2app.git#egg=oauth2app

이 "계란" 끈의 의미는 무엇입니까?

pip install -h "egg" 문자열은 설치의 일부로 체크아웃되는 디렉토리입니다.

에그는 단지 파이썬 코드를 묶은 일 뿐입니다.깃 URL에서 알은 프로젝트 이름입니다.VCS 지원

보통 Pypi에서 python 패키지를 설치하기 때문에 패키지 이름과 버전만 지정합니다(또는 지정하지 않으면 최신 버전을 가정합니다).그런 다음 Pypi는 원하는 달걀을 검색하고 Pip은 그것을 설치합니다.pip install celery가장 최근에 출판된 계란을 설치할 것이고.pip install celery[redis]는 동일한 셀러리 패키지를 포함하는 다른 에그를 설치하고 셀러리의 setup.py 에 rediscellery의 종속성으로 나열된 패키지 중 최신 에그를 설치합니다.

git 및 gitlab 경로를 사용하여 다음과 같이 지정합니다./{user|group}/{repository}.git@{tag}#egg={package-name}. 사이에 차이가 있습니다#egg=celery그리고.#egg=celery[redis], 하지만 둘 다 같은 소스 코드에서 나올 겁니다

"tag"는 실제 태그 외에도 분기 또는 커밋 해시일 수도 있습니다.다음과 같이 추정됩니다.master특정하지 않으면.

예를들면,git+https://github.com/celery/celery.git#egg=celery==4.3.0마스터 브랜치를 확인하고 설치할 겁니다버전 번호를 지정했더라도 설치에서는 이 번호가 고려되지 않습니다.버전 번호가 무시됨

git 또는 다른 VCS URL을 통해 설치할 때 필요한 버전의 태그 또는 해시를 찾을 수 있습니다.예를들면,git+https://github.com/celery/celery.git@v4.3.0#egg=celery커밋 태그가 지정된 "v4.3.0"을 확인한 다음 해당 소스 코드에서 패키지를 설치합니다.유지 관리자가 저장소에 태그를 잘못 지정하지 않았다고 가정하면 원하는 버전을 그렇게 얻을 수 있습니다.

https://pip.pypa.io/en/stable/reference/pip_install/ # vcs-support는 다음과 같이 말합니다.

URL 접미사 " egg=-"의 "Project name" 구성요소는 pip이 메타데이터를 다운로드하고 분석하기 전에 프로젝트를 식별하기 위해 종속 로직에서 사용됩니다.달걀 이름의 선택적인 "버전" 구성 요소는 기능적으로 중요하지 않습니다.그것은 단지 어떤 버전이 사용되고 있는지에 대한 사람이 읽을 수 있는 단서를 제공할 뿐입니다.setup.py 이 프로젝트의 루트에 없는 프로젝트의 경우 "subdirectory" 구성 요소가 사용됩니다."subdirectory" 구성 요소의 값은 프로젝트의 루트에서 시작하여 setup.py 이 있는 곳으로 가는 경로여야 합니다.

에만 사용된다는 이름, 합니다)이라고합니다. 따라서 관례상 패키지 이름(즉, 패키지 이름)이라고 생각합니다.some-pypi-package-name를 (, ) ) 를를 는 안 됩니다.some_pypi_package_name)

#egg= package를 포함해야 해당 URL에서 기대할 수 있는 내용을 알 수 있습니다. https://pip.pypa.io/en/stable/reference/pip_install/ # vcs-support 참조

계란에 더 많은

설명서 인용:

pip은 VCS URL에 대한 2개의 조각을 찾습니다.

egg : pip의 의존성 해결 로직에 사용할 "프로젝트 이름"을 지정하기 위한 것.eg : egg=project_name

하위 디렉터리:VCS 디렉토리의 루트에 없는 경우 Python 패키지의 경로를 지정하는 경우.예: pkg_

언급URL : https://stackoverflow.com/questions/11835396/why-egg-foo-when-pip-installing-from-git-repo

반응형